Enable Ctrl+F hotkey for more inputs

PR #20131.
This commit is contained in:
thalieht 2023-12-19 19:52:47 +02:00 committed by GitHub
parent 4057972b2d
commit 8dcc734df5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 33 additions and 6 deletions

View file

@ -382,6 +382,12 @@ AddNewTorrentDialog::AddNewTorrentDialog(const BitTorrent::TorrentDescriptor &to
m_filterLine->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); m_filterLine->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
connect(m_filterLine, &LineEdit::textChanged, m_ui->contentTreeView, &TorrentContentWidget::setFilterPattern); connect(m_filterLine, &LineEdit::textChanged, m_ui->contentTreeView, &TorrentContentWidget::setFilterPattern);
m_ui->contentFilterLayout->insertWidget(3, m_filterLine); m_ui->contentFilterLayout->insertWidget(3, m_filterLine);
const auto *focusSearchHotkey = new QShortcut(QKeySequence::Find, this);
connect(focusSearchHotkey, &QShortcut::activated, this, [this]()
{
m_filterLine->setFocus();
m_filterLine->selectAll();
});
loadState(); loadState();

View file

@ -82,6 +82,7 @@
#include "powermanagement/powermanagement.h" #include "powermanagement/powermanagement.h"
#include "properties/peerlistwidget.h" #include "properties/peerlistwidget.h"
#include "properties/propertieswidget.h" #include "properties/propertieswidget.h"
#include "properties/proptabbar.h"
#include "rss/rsswidget.h" #include "rss/rsswidget.h"
#include "search/searchwidget.h" #include "search/searchwidget.h"
#include "speedlimitdialog.h" #include "speedlimitdialog.h"
@ -724,10 +725,18 @@ void MainWindow::displaySearchTab(bool enable)
} }
} }
void MainWindow::focusSearchFilter() void MainWindow::toggleFocusBetweenLineEdits()
{ {
if (m_columnFilterEdit->hasFocus() && (m_propertiesWidget->tabBar()->currentIndex() == PropTabBar::FilesTab))
{
m_propertiesWidget->contentFilterLine()->setFocus();
m_propertiesWidget->contentFilterLine()->selectAll();
}
else
{
m_columnFilterEdit->setFocus(); m_columnFilterEdit->setFocus();
m_columnFilterEdit->selectAll(); m_columnFilterEdit->selectAll();
}
} }
void MainWindow::updateNbTorrents() void MainWindow::updateNbTorrents()
@ -852,9 +861,9 @@ void MainWindow::createKeyboardShortcuts()
const auto *switchExecutionLogShortcut = new QShortcut((Qt::ALT | Qt::Key_4), this); const auto *switchExecutionLogShortcut = new QShortcut((Qt::ALT | Qt::Key_4), this);
connect(switchExecutionLogShortcut, &QShortcut::activated, this, &MainWindow::displayExecutionLogTab); connect(switchExecutionLogShortcut, &QShortcut::activated, this, &MainWindow::displayExecutionLogTab);
const auto *switchSearchFilterShortcut = new QShortcut(QKeySequence::Find, m_transferListWidget); const auto *switchSearchFilterShortcut = new QShortcut(QKeySequence::Find, m_transferListWidget);
connect(switchSearchFilterShortcut, &QShortcut::activated, this, &MainWindow::focusSearchFilter); connect(switchSearchFilterShortcut, &QShortcut::activated, this, &MainWindow::toggleFocusBetweenLineEdits);
const auto *switchSearchFilterShortcutAlternative = new QShortcut((Qt::CTRL | Qt::Key_E), m_transferListWidget); const auto *switchSearchFilterShortcutAlternative = new QShortcut((Qt::CTRL | Qt::Key_E), m_transferListWidget);
connect(switchSearchFilterShortcutAlternative, &QShortcut::activated, this, &MainWindow::focusSearchFilter); connect(switchSearchFilterShortcutAlternative, &QShortcut::activated, this, &MainWindow::toggleFocusBetweenLineEdits);
m_ui->actionDocumentation->setShortcut(QKeySequence::HelpContents); m_ui->actionDocumentation->setShortcut(QKeySequence::HelpContents);
m_ui->actionOptions->setShortcut(Qt::ALT | Qt::Key_O); m_ui->actionOptions->setShortcut(Qt::ALT | Qt::Key_O);

View file

@ -125,7 +125,7 @@ private slots:
void displaySearchTab(); void displaySearchTab();
void displayRSSTab(); void displayRSSTab();
void displayExecutionLogTab(); void displayExecutionLogTab();
void focusSearchFilter(); void toggleFocusBetweenLineEdits();
void reloadSessionStats(); void reloadSessionStats();
void reloadTorrentStats(const QVector<BitTorrent::Torrent *> &torrents); void reloadTorrentStats(const QVector<BitTorrent::Torrent *> &torrents);
void loadPreferences(); void loadPreferences();

View file

@ -257,6 +257,16 @@ QTreeView *PropertiesWidget::getFilesList() const
return m_ui->filesList; return m_ui->filesList;
} }
PropTabBar *PropertiesWidget::tabBar() const
{
return m_tabBar;
}
LineEdit *PropertiesWidget::contentFilterLine() const
{
return m_contentFilterLine;
}
void PropertiesWidget::updateSavePath(BitTorrent::Torrent *const torrent) void PropertiesWidget::updateSavePath(BitTorrent::Torrent *const torrent)
{ {
if (torrent == m_torrent) if (torrent == m_torrent)

View file

@ -73,6 +73,8 @@ public:
TrackerListWidget *getTrackerList() const; TrackerListWidget *getTrackerList() const;
PeerListWidget *getPeerList() const; PeerListWidget *getPeerList() const;
QTreeView *getFilesList() const; QTreeView *getFilesList() const;
PropTabBar *tabBar() const;
LineEdit *contentFilterLine() const;
public slots: public slots:
void setVisibility(bool visible); void setVisibility(bool visible);