mirror of
https://github.com/d47081/qBittorrent.git
synced 2025-02-05 03:14:44 +00:00
Merge pull request #9053 from Chocobo1/optionWheel
Disable certain mouse wheel events in Options dialog
This commit is contained in:
commit
c8c7ed4a2e
@ -485,10 +485,6 @@ void AdvancedSettings::loadAdvancedSettings()
|
|||||||
template <typename T>
|
template <typename T>
|
||||||
void AdvancedSettings::addRow(int row, const QString &rowText, T* widget)
|
void AdvancedSettings::addRow(int row, const QString &rowText, T* widget)
|
||||||
{
|
{
|
||||||
// ignore mouse wheel event
|
|
||||||
static WheelEventEater filter;
|
|
||||||
widget->installEventFilter(&filter);
|
|
||||||
|
|
||||||
setItem(row, PROPERTY, new QTableWidgetItem(rowText));
|
setItem(row, PROPERTY, new QTableWidgetItem(rowText));
|
||||||
setCellWidget(row, VALUE, widget);
|
setCellWidget(row, VALUE, widget);
|
||||||
|
|
||||||
|
@ -31,28 +31,11 @@
|
|||||||
|
|
||||||
#include <QCheckBox>
|
#include <QCheckBox>
|
||||||
#include <QComboBox>
|
#include <QComboBox>
|
||||||
#include <QEvent>
|
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
#include <QLineEdit>
|
#include <QLineEdit>
|
||||||
#include <QSpinBox>
|
#include <QSpinBox>
|
||||||
#include <QTableWidget>
|
#include <QTableWidget>
|
||||||
|
|
||||||
class WheelEventEater: public QObject
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
private:
|
|
||||||
bool eventFilter(QObject *obj, QEvent *event)
|
|
||||||
{
|
|
||||||
switch (event->type()) {
|
|
||||||
case QEvent::Wheel:
|
|
||||||
return true;
|
|
||||||
default:
|
|
||||||
return QObject::eventFilter(obj, event);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
class AdvancedSettings: public QTableWidget
|
class AdvancedSettings: public QTableWidget
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
@ -38,6 +38,7 @@
|
|||||||
#include <QDesktopServices>
|
#include <QDesktopServices>
|
||||||
#include <QDesktopWidget>
|
#include <QDesktopWidget>
|
||||||
#include <QDialogButtonBox>
|
#include <QDialogButtonBox>
|
||||||
|
#include <QEvent>
|
||||||
#include <QFileDialog>
|
#include <QFileDialog>
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
#include <QSystemTrayIcon>
|
#include <QSystemTrayIcon>
|
||||||
@ -50,6 +51,7 @@
|
|||||||
|
|
||||||
#include "app/application.h"
|
#include "app/application.h"
|
||||||
#include "base/bittorrent/session.h"
|
#include "base/bittorrent/session.h"
|
||||||
|
#include "base/global.h"
|
||||||
#include "base/net/dnsupdater.h"
|
#include "base/net/dnsupdater.h"
|
||||||
#include "base/net/portforwarder.h"
|
#include "base/net/portforwarder.h"
|
||||||
#include "base/net/proxyconfigurationmanager.h"
|
#include "base/net/proxyconfigurationmanager.h"
|
||||||
@ -72,6 +74,18 @@
|
|||||||
|
|
||||||
#include "ui_optionsdlg.h"
|
#include "ui_optionsdlg.h"
|
||||||
|
|
||||||
|
class WheelEventEater : public QObject
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
using QObject::QObject;
|
||||||
|
|
||||||
|
private:
|
||||||
|
bool eventFilter(QObject *, QEvent *event) override
|
||||||
|
{
|
||||||
|
return (event->type() == QEvent::Wheel);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
OptionsDialog::OptionsDialog(QWidget *parent)
|
OptionsDialog::OptionsDialog(QWidget *parent)
|
||||||
: QDialog(parent)
|
: QDialog(parent)
|
||||||
@ -425,6 +439,13 @@ OptionsDialog::OptionsDialog(QWidget *parent)
|
|||||||
m_ui->textTempPath->setDialogCaption(tr("Choose a save directory"));
|
m_ui->textTempPath->setDialogCaption(tr("Choose a save directory"));
|
||||||
m_ui->textTempPath->setMode(FileSystemPathEdit::Mode::DirectorySave);
|
m_ui->textTempPath->setMode(FileSystemPathEdit::Mode::DirectorySave);
|
||||||
|
|
||||||
|
// disable mouse wheel event on widgets to avoid mis-selection
|
||||||
|
WheelEventEater *wheelEventEater = new WheelEventEater(this);
|
||||||
|
for (QComboBox *widget : copyAsConst(findChildren<QComboBox *>()))
|
||||||
|
widget->installEventFilter(wheelEventEater);
|
||||||
|
for (QSpinBox *widget : copyAsConst(findChildren<QSpinBox *>()))
|
||||||
|
widget->installEventFilter(wheelEventEater);
|
||||||
|
|
||||||
loadWindowState();
|
loadWindowState();
|
||||||
show();
|
show();
|
||||||
// Have to be called after show(), because splitter width needed
|
// Have to be called after show(), because splitter width needed
|
||||||
|
@ -172,22 +172,20 @@ private:
|
|||||||
bool isWebUiEnabled() const;
|
bool isWebUiEnabled() const;
|
||||||
QString webUiUsername() const;
|
QString webUiUsername() const;
|
||||||
QString webUiPassword() const;
|
QString webUiPassword() const;
|
||||||
|
// WebUI SSL Cert / key
|
||||||
private:
|
|
||||||
bool setSslKey(const QByteArray &key);
|
bool setSslKey(const QByteArray &key);
|
||||||
bool setSslCertificate(const QByteArray &cert);
|
bool setSslCertificate(const QByteArray &cert);
|
||||||
bool schedTimesOk();
|
bool schedTimesOk();
|
||||||
bool webUIAuthenticationOk();
|
bool webUIAuthenticationOk();
|
||||||
|
|
||||||
private:
|
QByteArray m_sslCert, m_sslKey;
|
||||||
|
|
||||||
Ui::OptionsDialog *m_ui;
|
Ui::OptionsDialog *m_ui;
|
||||||
QButtonGroup choiceLanguage;
|
QButtonGroup choiceLanguage;
|
||||||
QAbstractButton *applyButton;
|
QAbstractButton *applyButton;
|
||||||
AdvancedSettings *advancedSettings;
|
AdvancedSettings *advancedSettings;
|
||||||
QList<QString> addedScanDirs;
|
QList<QString> addedScanDirs;
|
||||||
QList<QString> removedScanDirs;
|
QList<QString> removedScanDirs;
|
||||||
// SSL Cert / key
|
|
||||||
QByteArray m_sslCert, m_sslKey;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user