diff --git a/app/mainwindow.cpp b/app/mainwindow.cpp index c96e783..e5394e8 100644 --- a/app/mainwindow.cpp +++ b/app/mainwindow.cpp @@ -93,10 +93,14 @@ MainWindow::MainWindow(QWidget *parent) connect(m_graphicsView, &GraphicsView::navigatorViewRequired, this, [this](bool required, const QTransform & tf){ - m_gv->setTransform(GraphicsView::resetScale(tf)); - m_gv->fitInView(m_gv->sceneRect(), Qt::KeepAspectRatio); - m_gv->setVisible(required); - m_gv->updateMainViewportRegion(); + if (Settings::instance()->showBirdEyeView()){ + m_gv->setTransform(GraphicsView::resetScale(tf)); + m_gv->fitInView(m_gv->sceneRect(), Qt::KeepAspectRatio); + m_gv->setVisible(required); + m_gv->updateMainViewportRegion(); + } else { + m_gv->setVisible(false); + } }); connect(m_graphicsView, &GraphicsView::viewportRectChanged, diff --git a/app/settings.cpp b/app/settings.cpp index 3f9f759..76c7622 100644 --- a/app/settings.cpp +++ b/app/settings.cpp @@ -60,6 +60,11 @@ bool Settings::showTitleBar() const return m_qsettings->value("show_title_bar", true).toBool(); } +bool Settings::showBirdEyeView() const +{ + return m_qsettings->value("show_bird_eye_view", true).toBool(); +} + bool Settings::useLightCheckerboard() const { return m_qsettings->value("use_light_checkerboard", false).toBool(); @@ -134,6 +139,12 @@ void Settings::setShowTitleBar(bool on) m_qsettings->sync(); } +void Settings::setShowBirdEyeView(bool on) +{ + m_qsettings->setValue("show_bird_eye_view", on); + m_qsettings->sync(); +} + void Settings::setUseLightCheckerboard(bool light) { m_qsettings->setValue("use_light_checkerboard", light); diff --git a/app/settings.h b/app/settings.h index aa1f889..0561b37 100644 --- a/app/settings.h +++ b/app/settings.h @@ -37,6 +37,7 @@ public: bool stayOnTop() const; bool useBuiltInCloseAnimation() const; bool showTitleBar() const; + bool showBirdEyeView() const; bool useLightCheckerboard() const; bool loopGallery() const; bool autoLongImageMode() const; @@ -49,6 +50,7 @@ public: void setStayOnTop(bool on); void setUseBuiltInCloseAnimation(bool on); void setShowTitleBar(bool on); + void setShowBirdEyeView(bool on); void setUseLightCheckerboard(bool light); void setLoopGallery(bool on); void setAutoLongImageMode(bool on); diff --git a/app/settingsdialog.cpp b/app/settingsdialog.cpp index a61e8d2..e6fa7a0 100644 --- a/app/settingsdialog.cpp +++ b/app/settingsdialog.cpp @@ -22,6 +22,7 @@ SettingsDialog::SettingsDialog(QWidget *parent) , m_stayOnTop(new QCheckBox) , m_useBuiltInCloseAnimation(new QCheckBox) , m_showTitleBar(new QCheckBox) + , m_showBirdEyeView(new QCheckBox) , m_useLightCheckerboard(new QCheckBox) , m_loopGallery(new QCheckBox) , m_autoLongImageMode(new QCheckBox) @@ -125,6 +126,7 @@ SettingsDialog::SettingsDialog(QWidget *parent) settingsForm->addRow(tr("Stay on top when start-up"), m_stayOnTop); settingsForm->addRow(tr("Use built-in close window animation"), m_useBuiltInCloseAnimation); settingsForm->addRow(tr("Show title bar"), m_showTitleBar); + settingsForm->addRow(tr("Show bird's-eye view"), m_showBirdEyeView); settingsForm->addRow(tr("Use light-color checkerboard"), m_useLightCheckerboard); settingsForm->addRow(tr("Loop the loaded gallery"), m_loopGallery); settingsForm->addRow(tr("Auto long image mode"), m_autoLongImageMode); @@ -137,6 +139,7 @@ SettingsDialog::SettingsDialog(QWidget *parent) m_stayOnTop->setChecked(Settings::instance()->stayOnTop()); m_useBuiltInCloseAnimation->setChecked(Settings::instance()->useBuiltInCloseAnimation()); m_showTitleBar->setChecked(Settings::instance()->showTitleBar()); + m_showBirdEyeView->setChecked(Settings::instance()->showBirdEyeView()); m_useLightCheckerboard->setChecked(Settings::instance()->useLightCheckerboard()); m_loopGallery->setChecked(Settings::instance()->loopGallery()); m_autoLongImageMode->setChecked(Settings::instance()->autoLongImageMode()); @@ -179,6 +182,10 @@ SettingsDialog::SettingsDialog(QWidget *parent) Settings::instance()->setShowTitleBar(state == Qt::Checked); }); + connect(m_showBirdEyeView, &QCHECKBOX_CHECKSTATECHANGED, this, [ = ](QT_CHECKSTATE state){ + Settings::instance()->setShowBirdEyeView(state == Qt::Checked); + }); + connect(m_useLightCheckerboard, &QCHECKBOX_CHECKSTATECHANGED, this, [ = ](QT_CHECKSTATE state){ Settings::instance()->setUseLightCheckerboard(state == Qt::Checked); }); diff --git a/app/settingsdialog.h b/app/settingsdialog.h index 1f0b089..66ac0f5 100644 --- a/app/settingsdialog.h +++ b/app/settingsdialog.h @@ -25,6 +25,7 @@ private: QCheckBox * m_stayOnTop = nullptr; QCheckBox * m_useBuiltInCloseAnimation = nullptr; QCheckBox * m_showTitleBar = nullptr; + QCheckBox * m_showBirdEyeView = nullptr; QCheckBox * m_useLightCheckerboard = nullptr; QCheckBox * m_loopGallery = nullptr; QCheckBox * m_autoLongImageMode = nullptr;