From b1d12cc406355a9856951c4ec1f3dac5c5f84ea5 Mon Sep 17 00:00:00 2001 From: yyc12345 Date: Fri, 24 Jul 2026 15:07:30 +0800 Subject: [PATCH] refactor: remove double-click-window behavior - remove double-click-window behavior entirely - remove the icon of copy image action --- app/actionmanager.cpp | 2 +- app/mainwindow.cpp | 30 ------------------------------ app/mainwindow.h | 1 - app/settings.cpp | 12 ------------ app/settings.h | 10 ---------- app/settingsdialog.cpp | 16 ---------------- app/settingsdialog.ui | 20 +++++--------------- 7 files changed, 6 insertions(+), 85 deletions(-) diff --git a/app/actionmanager.cpp b/app/actionmanager.cpp index 738ad11..7a7c5ec 100644 --- a/app/actionmanager.cpp +++ b/app/actionmanager.cpp @@ -55,7 +55,7 @@ void ActionManager::setupAction(MainWindow *mainWindow) // TODO: We may replace all Qt theme icons to our custom icon for visual consistency. // TODO: Some icons are invalid. - CREATE_NEW_THEMEICON_ACTION(mainWindow, actionCopyPixmap, edit-copy); + CREATE_NEW_ACTION(mainWindow, actionCopyPixmap); CREATE_NEW_ACTION(mainWindow, actionCopyFilePath); CREATE_NEW_ICON_ACTION(mainWindow, actionPrevPicture, go-previous); diff --git a/app/mainwindow.cpp b/app/mainwindow.cpp index e8f0079..9e475ca 100644 --- a/app/mainwindow.cpp +++ b/app/mainwindow.cpp @@ -297,36 +297,6 @@ QStringList MainWindow::supportedImageFormats() return formatFilters; } -void MainWindow::mouseDoubleClickEvent(QMouseEvent *event) -{ - // The forward/back mouse button can also used to trigger a mouse double-click event - // Since we use that for gallery navigation so we ignore these two buttons. - if (event->buttons() & Qt::ForwardButton || event->buttons() & Qt::BackButton) { - return; - } - - switch (Settings::instance()->doubleClickBehavior()) { - case Settings::DoubleClickBehavior::Close: - closeWindow(); - event->accept(); - break; - case Settings::DoubleClickBehavior::Maximize: - toggleMaximize(); - event->accept(); - break; - case Settings::DoubleClickBehavior::FullScreen: - toggleFullscreen(); - event->accept(); - break; - case Settings::DoubleClickBehavior::Ignore: - break; - } - - // blumia: don't call parent constructor here, seems it will cause mouse move - // event get called even if we set event->accept(); - // return QMainWindow::mouseDoubleClickEvent(event); -} - void MainWindow::wheelEvent(QWheelEvent *event) { QPoint numDegrees = event->angleDelta() / 8; diff --git a/app/mainwindow.h b/app/mainwindow.h index c069ccb..2a78fb0 100644 --- a/app/mainwindow.h +++ b/app/mainwindow.h @@ -38,7 +38,6 @@ public: static QStringList supportedImageFormats(); protected slots: - void mouseDoubleClickEvent(QMouseEvent *event) override; void wheelEvent(QWheelEvent *event) override; void contextMenuEvent(QContextMenuEvent *event) override; void dragEnterEvent(QDragEnterEvent *event) override; diff --git a/app/settings.cpp b/app/settings.cpp index f8cb29a..ff413d9 100644 --- a/app/settings.cpp +++ b/app/settings.cpp @@ -65,12 +65,6 @@ bool Settings::svgTiny12Only() const #endif // QT_VERSION < QT_VERSION_CHECK(6, 9, 3) } -Settings::DoubleClickBehavior Settings::doubleClickBehavior() const -{ - QString result = m_qsettings->value("double_click_behavior", "").toString(); - return QEnumHelper::fromString(result, DoubleClickBehavior::Ignore); -} - Settings::MouseWheelBehavior Settings::mouseWheelBehavior() const { QString result = m_qsettings->value("mouse_wheel_behavior", "").toString(); @@ -107,12 +101,6 @@ void Settings::setSvgTiny12Only(bool on) m_qsettings->sync(); } -void Settings::setDoubleClickBehavior(DoubleClickBehavior dcb) -{ - m_qsettings->setValue("double_click_behavior", QEnumHelper::toString(dcb)); - m_qsettings->sync(); -} - void Settings::setMouseWheelBehavior(MouseWheelBehavior mwb) { m_qsettings->setValue("mouse_wheel_behavior", QEnumHelper::toString(mwb)); diff --git a/app/settings.h b/app/settings.h index 3a2892f..94cdbbb 100644 --- a/app/settings.h +++ b/app/settings.h @@ -11,14 +11,6 @@ class Settings : public QObject { Q_OBJECT public: - enum DoubleClickBehavior { - Ignore, - Close, - Maximize, - FullScreen, - }; - Q_ENUM(DoubleClickBehavior) - enum MouseWheelBehavior { Zoom, Switch, @@ -38,7 +30,6 @@ public: bool useLightCheckerboard() const; bool loopGallery() const; bool svgTiny12Only() const; - DoubleClickBehavior doubleClickBehavior() const; MouseWheelBehavior mouseWheelBehavior() const; WindowSizeBehavior initWindowSizeBehavior() const; Qt::HighDpiScaleFactorRoundingPolicy hiDpiScaleFactorBehavior() const; @@ -46,7 +37,6 @@ public: void setUseLightCheckerboard(bool light); void setLoopGallery(bool on); void setSvgTiny12Only(bool on); - void setDoubleClickBehavior(DoubleClickBehavior dcb); void setMouseWheelBehavior(MouseWheelBehavior mwb); void setInitWindowSizeBehavior(WindowSizeBehavior wsb); void setHiDpiScaleFactorBehavior(Qt::HighDpiScaleFactorRoundingPolicy hidpi); diff --git a/app/settingsdialog.cpp b/app/settingsdialog.cpp index f418e46..b27f513 100644 --- a/app/settingsdialog.cpp +++ b/app/settingsdialog.cpp @@ -49,15 +49,6 @@ private: Pairs pairs; }; -static EnumComboBoxTransformer DC_OPTIONS { - { - {Settings::DoubleClickBehavior::Ignore, QCoreApplication::translate("SettingsDialog", "Do nothing")}, - {Settings::DoubleClickBehavior::Close, QCoreApplication::translate("SettingsDialog", "Close the window")}, - {Settings::DoubleClickBehavior::Maximize, QCoreApplication::translate("SettingsDialog", "Toggle maximize")}, - {Settings::DoubleClickBehavior::FullScreen, QCoreApplication::translate("SettingsDialog", "Toggle fullscreen")} - } -}; - static EnumComboBoxTransformer MW_OPTIONS { { { Settings::MouseWheelBehavior::Zoom, QCoreApplication::translate("SettingsDialog", "Zoom in and out") }, @@ -92,9 +83,6 @@ SettingsDialog::SettingsDialog(QWidget *parent) ui->m_useLightCheckerboard->setChecked(settings->useLightCheckerboard()); ui->m_loopGallery->setChecked(settings->loopGallery()); ui->m_svgTiny12Only->setChecked(settings->svgTiny12Only()); - ui->m_doubleClickBehavior->setModel(DC_OPTIONS.buildComboBoxModel(this)); - Settings::DoubleClickBehavior dcb = settings->doubleClickBehavior(); - ui->m_doubleClickBehavior->setCurrentIndex(DC_OPTIONS.to_index(dcb)); ui->m_mouseWheelBehavior->setModel(MW_OPTIONS.buildComboBoxModel(this)); Settings::MouseWheelBehavior mwb = settings->mouseWheelBehavior(); ui->m_mouseWheelBehavior->setCurrentIndex(MW_OPTIONS.to_index(mwb)); @@ -125,10 +113,6 @@ SettingsDialog::SettingsDialog(QWidget *parent) Settings::instance()->setSvgTiny12Only(state == Qt::Checked); }); - connect(ui->m_doubleClickBehavior, QOverload::of(&QComboBox::currentIndexChanged), this, [ = ](int index){ - Settings::instance()->setDoubleClickBehavior(DC_OPTIONS.to_value(index)); - }); - connect(ui->m_mouseWheelBehavior, QOverload::of(&QComboBox::currentIndexChanged), this, [ = ](int index){ Settings::instance()->setMouseWheelBehavior(MW_OPTIONS.to_value(index)); }); diff --git a/app/settingsdialog.ui b/app/settingsdialog.ui index 2d203dd..d8cf722 100644 --- a/app/settingsdialog.ui +++ b/app/settingsdialog.ui @@ -41,43 +41,33 @@ - - - Double-click behavior - - - - - - - Mouse wheel behavior - + - + Default window size - + - + HiDPI scale factor rounding policy - +