]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Add option to hide entire status bar
authorMichael Lang <criticaltemp@protonmail.com>
Wed, 7 Apr 2021 09:05:51 +0000 (09:05 +0000)
committerMéven Car <meven29@gmail.com>
Wed, 7 Apr 2021 09:05:51 +0000 (09:05 +0000)
src/settings/dolphin_generalsettings.kcfg
src/settings/general/statusbarsettingspage.cpp
src/settings/general/statusbarsettingspage.h
src/statusbar/dolphinstatusbar.cpp

index bc1cf72aab3552490147a53770053da08a9e2143..728d1163460b5ac948df6ce3a25555204d0da754 100644 (file)
             <label>Use auto-expanding folders for all view types</label>
             <default>false</default>
         </entry>
+        <entry name="ShowStatusBar" type="Bool">
+            <label>Show the statusbar</label>
+            <default>true</default>
+        </entry>
         <entry name="ShowZoomSlider" type="Bool">
             <label>Show zoom slider in the statusbar</label>
             <default>true</default>
index ddefa1a402a33c3e83b964004cf59cd8e593f3d8..9d90a64fdb87bfda6f0a4e26ab9390a2b347f014 100644 (file)
 
 StatusBarSettingsPage::StatusBarSettingsPage(QWidget* parent) :
     SettingsPageBase(parent),
+    m_showStatusBar(nullptr),
     m_showZoomSlider(nullptr),
     m_showSpaceInfo(nullptr)
 {
+    m_showStatusBar = new QCheckBox(i18nc("@option:check", "Show status bar"), this);
     m_showZoomSlider = new QCheckBox(i18nc("@option:check", "Show zoom slider"), this);
     m_showSpaceInfo = new QCheckBox(i18nc("@option:check", "Show space information"), this);
 
     QVBoxLayout* topLayout = new QVBoxLayout(this);
+    topLayout->addWidget(m_showStatusBar);
     topLayout->addWidget(m_showZoomSlider);
     topLayout->addWidget(m_showSpaceInfo);
     topLayout->addStretch();
 
     loadSettings();
 
+    connect(m_showStatusBar, &QCheckBox::toggled, this, &StatusBarSettingsPage::changed);
+    connect(m_showStatusBar, &QCheckBox::toggled, this, &StatusBarSettingsPage::onShowStatusBarToggled);
     connect(m_showZoomSlider, &QCheckBox::toggled, this, &StatusBarSettingsPage::changed);
     connect(m_showSpaceInfo, &QCheckBox::toggled, this, &StatusBarSettingsPage::changed);
 }
@@ -36,9 +41,17 @@ StatusBarSettingsPage::~StatusBarSettingsPage()
 {
 }
 
+void StatusBarSettingsPage::onShowStatusBarToggled()
+{
+    const bool checked = m_showStatusBar->isChecked();
+    m_showZoomSlider->setEnabled(checked);
+    m_showSpaceInfo->setEnabled(checked);
+}
+
 void StatusBarSettingsPage::applySettings()
 {
     GeneralSettings* settings = GeneralSettings::self();
+    settings->setShowStatusBar(m_showStatusBar->isChecked());
     settings->setShowZoomSlider(m_showZoomSlider->isChecked());
     settings->setShowSpaceInfo(m_showSpaceInfo->isChecked());
     settings->save();
@@ -54,7 +67,10 @@ void StatusBarSettingsPage::restoreDefaults()
 
 void StatusBarSettingsPage::loadSettings()
 {
+    m_showStatusBar->setChecked(GeneralSettings::showStatusBar());
     m_showZoomSlider->setChecked(GeneralSettings::showZoomSlider());
     m_showSpaceInfo->setChecked(GeneralSettings::showSpaceInfo());
+
+    onShowStatusBarToggled();
 }
 
index 3c5e7c2ad6c9a162bf3683585d9a0c03a8a36f05..af8e06164147daf011d81b19f152d47e96e9ef69 100644 (file)
@@ -29,8 +29,10 @@ public:
 
 private:
     void loadSettings();
+    void onShowStatusBarToggled();
 
 private:
+    QCheckBox* m_showStatusBar;
     QCheckBox* m_showZoomSlider;
     QCheckBox* m_showSpaceInfo;
 };
index 91c843366ef2ca01485243c1e43be9f1ea35d955..8ac74e71f00cf133bf28319f594f384e5c7d4840 100644 (file)
@@ -321,12 +321,15 @@ void DolphinStatusBar::updateZoomSliderToolTip(int zoomLevel)
 
 void DolphinStatusBar::setExtensionsVisible(bool visible)
 {
+    bool showStatusBar = visible;
     bool showSpaceInfo = visible;
     bool showZoomSlider = visible;
     if (visible) {
+        showStatusBar = GeneralSettings::showStatusBar();
         showSpaceInfo = GeneralSettings::showSpaceInfo();
         showZoomSlider = GeneralSettings::showZoomSlider();
     }
+    setVisible(showStatusBar);
     m_spaceInfo->setShown(showSpaceInfo);
     m_spaceInfo->setVisible(showSpaceInfo);
     m_zoomSlider->setVisible(showZoomSlider);