From 7adf012f9c910f4ae3656d02e7909f4fcd29a9c4 Mon Sep 17 00:00:00 2001 From: Nick Tiskov Date: Mon, 22 Jul 2013 18:39:48 +0400 Subject: [PATCH] Enable edit/rename via F2 or double click in various places --- src/addnewtorrentdialog.cpp | 7 ++++++- src/addnewtorrentdialog.h | 2 ++ src/properties/propertieswidget.cpp | 10 +++++++++- src/properties/propertieswidget.h | 3 +++ src/properties/trackerlist.cpp | 3 +++ src/properties/trackerlist.h | 2 ++ src/transferlistwidget.cpp | 3 +++ src/transferlistwidget.h | 2 ++ 8 files changed, 30 insertions(+), 2 deletions(-) diff --git a/src/addnewtorrentdialog.cpp b/src/addnewtorrentdialog.cpp index ab2c1e480..4b2e861e3 100644 --- a/src/addnewtorrentdialog.cpp +++ b/src/addnewtorrentdialog.cpp @@ -81,6 +81,9 @@ AddNewTorrentDialog::AddNewTorrentDialog(QWidget *parent) : loadState(); // Signal / slots connect(ui->adv_button, SIGNAL(clicked(bool)), SLOT(showAdvancedSettings(bool))); + editHotkey = new QShortcut(QKeySequence("F2"), ui->content_tree, 0, 0, Qt::WidgetShortcut); + connect(editHotkey, SIGNAL(activated()), SLOT(renameSelectedFile())); + connect(ui->content_tree, SIGNAL(doubleClicked(QModelIndex)), SLOT(renameSelectedFile())); } AddNewTorrentDialog::~AddNewTorrentDialog() @@ -89,6 +92,7 @@ AddNewTorrentDialog::~AddNewTorrentDialog() delete ui; if (m_contentModel) delete m_contentModel; + delete editHotkey; } void AddNewTorrentDialog::loadState() @@ -390,7 +394,8 @@ void AddNewTorrentDialog::relayout() void AddNewTorrentDialog::renameSelectedFile() { const QModelIndexList selectedIndexes = ui->content_tree->selectionModel()->selectedRows(0); - Q_ASSERT(selectedIndexes.size() == 1); + if (selectedIndexes.size() != 1) + return; const QModelIndex &index = selectedIndexes.first(); // Ask for new name bool ok; diff --git a/src/addnewtorrentdialog.h b/src/addnewtorrentdialog.h index f6d8b078d..60b095b94 100644 --- a/src/addnewtorrentdialog.h +++ b/src/addnewtorrentdialog.h @@ -31,6 +31,7 @@ #ifndef ADDNEWTORRENTDIALOG_H #define ADDNEWTORRENTDIALOG_H +#include #include #include #include @@ -86,6 +87,7 @@ private: boost::intrusive_ptr m_torrentInfo; QStringList m_filesPath; bool m_hasRenamedFile; + QShortcut *editHotkey; }; #endif // ADDNEWTORRENTDIALOG_H diff --git a/src/properties/propertieswidget.cpp b/src/properties/propertieswidget.cpp index 95554036c..05e9d7b93 100644 --- a/src/properties/propertieswidget.cpp +++ b/src/properties/propertieswidget.cpp @@ -119,6 +119,11 @@ PropertiesWidget::PropertiesWidget(QWidget *parent, MainWindow* main_window, Tra refreshTimer = new QTimer(this); connect(refreshTimer, SIGNAL(timeout()), this, SLOT(loadDynamicData())); refreshTimer->start(3000); // 3sec + editHotkeyFile = new QShortcut(QKeySequence("F2"), filesList, 0, 0, Qt::WidgetShortcut); + connect(editHotkeyFile, SIGNAL(activated()), SLOT(renameSelectedFile())); + editHotkeyWeb = new QShortcut(QKeySequence("F2"), listWebSeeds, 0, 0, Qt::WidgetShortcut); + connect(editHotkeyWeb, SIGNAL(activated()), SLOT(editWebSeed())); + connect(listWebSeeds, SIGNAL(doubleClicked(QModelIndex)), SLOT(editWebSeed())); } PropertiesWidget::~PropertiesWidget() { @@ -131,6 +136,8 @@ PropertiesWidget::~PropertiesWidget() { delete PropListModel; delete PropDelegate; delete m_tabBar; + delete editHotkeyFile; + delete editHotkeyWeb; qDebug() << Q_FUNC_INFO << "EXIT"; } @@ -519,7 +526,8 @@ void PropertiesWidget::displayWebSeedListMenu(const QPoint&) { void PropertiesWidget::renameSelectedFile() { const QModelIndexList selectedIndexes = filesList->selectionModel()->selectedRows(0); - Q_ASSERT(selectedIndexes.size() == 1); + if (selectedIndexes.size() != 1) + return; const QModelIndex index = selectedIndexes.first(); // Ask for new name bool ok; diff --git a/src/properties/propertieswidget.h b/src/properties/propertieswidget.h index 5ba610b6e..0ea4738d6 100644 --- a/src/properties/propertieswidget.h +++ b/src/properties/propertieswidget.h @@ -31,6 +31,7 @@ #ifndef PROPERTIESWIDGET_H #define PROPERTIESWIDGET_H +#include #include #include "ui_propertieswidget.h" #include "qtorrenthandle.h" @@ -112,6 +113,8 @@ private: PieceAvailabilityBar *pieces_availability; PropTabBar *m_tabBar; LineEdit *m_contentFilerLine; + QShortcut *editHotkeyFile; + QShortcut *editHotkeyWeb; }; #endif // PROPERTIESWIDGET_H diff --git a/src/properties/trackerlist.cpp b/src/properties/trackerlist.cpp index e9c1132b3..68fbf2cf4 100644 --- a/src/properties/trackerlist.cpp +++ b/src/properties/trackerlist.cpp @@ -75,11 +75,14 @@ TrackerList::TrackerList(PropertiesWidget *properties): QTreeWidget(), propertie lsd_item = new QTreeWidgetItem(QStringList() << "" << "** [LSD] **"); insertTopLevelItem(2, lsd_item); setRowColor(2, QColor("grey")); + editHotkey = new QShortcut(QKeySequence("F2"), this, SLOT(editSelectedTracker()), 0, Qt::WidgetShortcut); + connect(this, SIGNAL(doubleClicked(QModelIndex)), SLOT(editSelectedTracker())); loadSettings(); } TrackerList::~TrackerList() { + delete editHotkey; saveSettings(); } diff --git a/src/properties/trackerlist.h b/src/properties/trackerlist.h index 19aee9ae0..e0c71ac6f 100644 --- a/src/properties/trackerlist.h +++ b/src/properties/trackerlist.h @@ -31,6 +31,7 @@ #ifndef TRACKERLIST_H #define TRACKERLIST_H +#include #include #include #include @@ -52,6 +53,7 @@ private: QTreeWidgetItem* dht_item; QTreeWidgetItem* pex_item; QTreeWidgetItem* lsd_item; + QShortcut *editHotkey; public: TrackerList(PropertiesWidget *properties); diff --git a/src/transferlistwidget.cpp b/src/transferlistwidget.cpp index 9d30991c5..bb3a6a5ad 100644 --- a/src/transferlistwidget.cpp +++ b/src/transferlistwidget.cpp @@ -141,6 +141,8 @@ TransferListWidget::TransferListWidget(QWidget *parent, MainWindow *main_window, connect(this, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(displayListMenu(const QPoint&))); header()->setContextMenuPolicy(Qt::CustomContextMenu); connect(header(), SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(displayDLHoSMenu(const QPoint&))); + + editHotkey = new QShortcut(QKeySequence("F2"), this, SLOT(renameSelectedTorrent()), 0, Qt::WidgetShortcut); } TransferListWidget::~TransferListWidget() { @@ -153,6 +155,7 @@ TransferListWidget::~TransferListWidget() { delete nameFilterModel; delete listModel; delete listDelegate; + delete editHotkey; qDebug() << Q_FUNC_INFO << "EXIT"; } diff --git a/src/transferlistwidget.h b/src/transferlistwidget.h index d8971c308..8a4dbd2cd 100644 --- a/src/transferlistwidget.h +++ b/src/transferlistwidget.h @@ -31,6 +31,7 @@ #ifndef TRANSFERLISTWIDGET_H #define TRANSFERLISTWIDGET_H +#include #include #include #include "qtorrenthandle.h" @@ -116,6 +117,7 @@ private: QSortFilterProxyModel *labelFilterModel; QBtSession* BTSession; MainWindow *main_window; + QShortcut *editHotkey; }; #endif // TRANSFERLISTWIDGET_H