Fix Enter key behavior when add new torrent

PR #19787.
Closes #19760.
This commit is contained in:
Vladimir Golovnev 2023-10-28 10:42:37 +03:00 committed by Vladimir Golovnev (Glassez)
parent 42d7465cba
commit a1317e24f9
No known key found for this signature in database
GPG key ID: 52A2C7DEE2DFA6F7
3 changed files with 34 additions and 4 deletions

View file

@ -82,6 +82,7 @@ PropertiesWidget::PropertiesWidget(QWidget *parent)
m_ui->contentFilterLayout->insertWidget(3, m_contentFilterLine);
m_ui->filesList->setDoubleClickAction(TorrentContentWidget::DoubleClickAction::Open);
m_ui->filesList->setOpenByEnterKey(true);
// SIGNAL/SLOTS
connect(m_ui->selectAllButton, &QPushButton::clicked, m_ui->filesList, &TorrentContentWidget::checkAll);

View file

@ -89,10 +89,6 @@ TorrentContentWidget::TorrentContentWidget(QWidget *parent)
const auto *renameFileHotkey = new QShortcut(Qt::Key_F2, this, nullptr, nullptr, Qt::WidgetShortcut);
connect(renameFileHotkey, &QShortcut::activated, this, &TorrentContentWidget::renameSelectedFile);
const auto *openFileHotkeyReturn = new QShortcut(Qt::Key_Return, this, nullptr, nullptr, Qt::WidgetShortcut);
connect(openFileHotkeyReturn, &QShortcut::activated, this, &TorrentContentWidget::openSelectedFile);
const auto *openFileHotkeyEnter = new QShortcut(Qt::Key_Enter, this, nullptr, nullptr, Qt::WidgetShortcut);
connect(openFileHotkeyEnter, &QShortcut::activated, this, &TorrentContentWidget::openSelectedFile);
connect(model(), &QAbstractItemModel::modelReset, this, &TorrentContentWidget::expandRecursively);
}
@ -118,6 +114,32 @@ void TorrentContentWidget::refresh()
setUpdatesEnabled(true);
}
bool TorrentContentWidget::openByEnterKey() const
{
return m_openFileHotkeyEnter;
}
void TorrentContentWidget::setOpenByEnterKey(const bool value)
{
if (value == openByEnterKey())
return;
if (value)
{
m_openFileHotkeyReturn = new QShortcut(Qt::Key_Return, this, nullptr, nullptr, Qt::WidgetShortcut);
connect(m_openFileHotkeyReturn, &QShortcut::activated, this, &TorrentContentWidget::openSelectedFile);
m_openFileHotkeyEnter = new QShortcut(Qt::Key_Enter, this, nullptr, nullptr, Qt::WidgetShortcut);
connect(m_openFileHotkeyEnter, &QShortcut::activated, this, &TorrentContentWidget::openSelectedFile);
}
else
{
delete m_openFileHotkeyEnter;
m_openFileHotkeyEnter = nullptr;
delete m_openFileHotkeyReturn;
m_openFileHotkeyReturn = nullptr;
}
}
TorrentContentWidget::DoubleClickAction TorrentContentWidget::doubleClickAction() const
{
return m_doubleClickAction;

View file

@ -34,6 +34,8 @@
#include "base/bittorrent/downloadpriority.h"
#include "base/pathfwd.h"
class QShortcut;
namespace BitTorrent
{
class Torrent;
@ -78,6 +80,9 @@ public:
BitTorrent::TorrentContentHandler *contentHandler() const;
void refresh();
bool openByEnterKey() const;
void setOpenByEnterKey(bool value);
DoubleClickAction doubleClickAction() const;
void setDoubleClickAction(DoubleClickAction action);
@ -118,4 +123,6 @@ private:
TorrentContentFilterModel *m_filterModel;
DoubleClickAction m_doubleClickAction = DoubleClickAction::Rename;
ColumnsVisibilityMode m_columnsVisibilityMode = ColumnsVisibilityMode::Editable;
QShortcut *m_openFileHotkeyEnter = nullptr;
QShortcut *m_openFileHotkeyReturn = nullptr;
};