summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2019-06-13 23:43:51 -0400
committerisanae <14251494+isanae@users.noreply.github.com>2019-06-13 23:43:51 -0400
commita7757e8ba6f5d10feea9e58611bde4dcb911079b (patch)
tree94847db5dfc9dcf42846d9939a49018b0374ad34 /src
parentba0b2c2a29d32d290a16d88ff71475dbd61a8ffd (diff)
added option to hide the status bar
centralized menu visibility into a showMenuBar() function
Diffstat (limited to 'src')
-rw-r--r--src/mainwindow.cpp51
-rw-r--r--src/mainwindow.h8
-rw-r--r--src/mainwindow.ui9
3 files changed, 60 insertions, 8 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 2497b05d..c255759b 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -203,6 +203,7 @@ MainWindow::MainWindow(QSettings &initSettings
, ui(new Ui::MainWindow)
, m_WasVisible(false)
, m_menuBarVisible(true)
+ , m_statusBarVisible(true)
, m_linksSeparator(nullptr)
, m_Tutorial(this, "MainWindow")
, m_OldProfileIndex(-1)
@@ -752,6 +753,7 @@ void MainWindow::toolbarMenu_aboutToShow()
ui->actionMainMenuToggle->setChecked(ui->menuBar->isVisible());
ui->actionToolBarMainToggle->setChecked(ui->toolBar->isVisible());
+ ui->actionStatusBarToggle->setChecked(ui->statusBar->isVisible());
ui->actionToolBarSmallIcons->setChecked(ui->toolBar->iconSize() == SmallToolbarSize);
ui->actionToolBarMediumIcons->setChecked(ui->toolBar->iconSize() == MediumToolbarSize);
@@ -769,8 +771,7 @@ QMenu* MainWindow::createPopupMenu()
void MainWindow::on_actionMainMenuToggle_triggered()
{
- ui->menuBar->setVisible(!ui->menuBar->isVisible());
- m_menuBarVisible = ui->menuBar->isVisible();
+ showMenuBar(!ui->menuBar->isVisible());
}
void MainWindow::on_actionToolBarMainToggle_triggered()
@@ -778,6 +779,11 @@ void MainWindow::on_actionToolBarMainToggle_triggered()
ui->toolBar->setVisible(!ui->toolBar->isVisible());
}
+void MainWindow::on_actionStatusBarToggle_triggered()
+{
+ showStatusBar(!ui->statusBar->isVisible());
+}
+
void MainWindow::on_actionToolBarSmallIcons_triggered()
{
setToolbarSize(SmallToolbarSize);
@@ -822,6 +828,36 @@ void MainWindow::setToolbarButtonStyle(Qt::ToolButtonStyle s)
}
}
+void MainWindow::showMenuBar(bool b)
+{
+ ui->menuBar->setVisible(b);
+ m_menuBarVisible = b;
+}
+
+void MainWindow::showStatusBar(bool b)
+{
+ ui->statusBar->setVisible(b);
+ m_statusBarVisible = b;
+
+ // the central widget typically has no bottom padding because the status bar
+ // is more than enough, but when it's hidden, the bottom widget (currently
+ // the log) touches the bottom border of the window, which looks ugly
+ //
+ // when hiding the statusbar, the central widget is given the same border
+ // margin as it has on the top (which is typically 6, as it's the default from
+ // the qt designer)
+
+ auto m = ui->centralWidget->layout()->contentsMargins();
+
+ if (b) {
+ m.setBottom(0);
+ } else {
+ m.setBottom(m.top());
+ }
+
+ ui->centralWidget->layout()->setContentsMargins(m);
+}
+
void MainWindow::on_centralWidget_customContextMenuRequested(const QPoint &pos)
{
// this allows for getting the context menu even if both the menubar and all
@@ -2096,8 +2132,11 @@ void MainWindow::readSettings()
}
if (settings.contains("menubar_visible")) {
- m_menuBarVisible = settings.value("menubar_visible").toBool();
- ui->menuBar->setVisible(m_menuBarVisible);
+ showMenuBar(settings.value("menubar_visible").toBool());
+ }
+
+ if (settings.contains("statusbar_visible")) {
+ showStatusBar(settings.value("statusbar_visible").toBool());
}
if (settings.contains("window_split")) {
@@ -2193,6 +2232,7 @@ void MainWindow::storeSettings(QSettings &settings) {
settings.setValue("toolbar_size", ui->toolBar->iconSize());
settings.setValue("toolbar_button_style", static_cast<int>(ui->toolBar->toolButtonStyle()));
settings.setValue("menubar_visible", m_menuBarVisible);
+ settings.setValue("statusbar_visible", m_statusBarVisible);
settings.setValue("window_split", ui->splitter->saveState());
settings.setValue("window_monitor", QApplication::desktop()->screenNumber(this));
settings.setValue("log_split", ui->topLevelSplitter->saveState());
@@ -6989,8 +7029,7 @@ void MainWindow::keyReleaseEvent(QKeyEvent *event)
// if the menubar is hidden, pressing Alt will make it visible
if (event->key() == Qt::Key_Alt) {
if (!ui->menuBar->isVisible()) {
- ui->menuBar->setVisible(true);
- m_menuBarVisible = true;
+ showMenuBar(true);
}
}
diff --git a/src/mainwindow.h b/src/mainwindow.h
index e2c6ce8b..88389738 100644
--- a/src/mainwindow.h
+++ b/src/mainwindow.h
@@ -326,8 +326,8 @@ private:
bool m_WasVisible;
// this has to be remembered because by the time storeSettings() is called,
- // the window is closed and the menubar is hidden
- bool m_menuBarVisible;
+ // the window is closed and the all bars are hidden
+ bool m_menuBarVisible, m_statusBarVisible;
std::unique_ptr<StatusBar> m_statusBar;
@@ -651,6 +651,7 @@ private slots: // ui slots
void on_actionExit_triggered();
void on_actionMainMenuToggle_triggered();
void on_actionToolBarMainToggle_triggered();
+ void on_actionStatusBarToggle_triggered();
void on_actionToolBarSmallIcons_triggered();
void on_actionToolBarMediumIcons_triggered();
void on_actionToolBarLargeIcons_triggered();
@@ -694,6 +695,9 @@ private slots: // ui slots
void on_categoriesAndBtn_toggled(bool checked);
void on_categoriesOrBtn_toggled(bool checked);
void on_managedArchiveLabel_linkHovered(const QString &link);
+
+ void showMenuBar(bool b);
+ void showStatusBar(bool b);
};
diff --git a/src/mainwindow.ui b/src/mainwindow.ui
index bbcb734c..98743b7e 100644
--- a/src/mainwindow.ui
+++ b/src/mainwindow.ui
@@ -1397,6 +1397,7 @@ p, li { white-space: pre-wrap; }
</property>
<addaction name="actionMainMenuToggle"/>
<addaction name="actionToolBarMainToggle"/>
+ <addaction name="actionStatusBarToggle"/>
<addaction name="separator"/>
<addaction name="actionToolBarSmallIcons"/>
<addaction name="actionToolBarMediumIcons"/>
@@ -1732,6 +1733,14 @@ p, li { white-space: pre-wrap; }
<string>&amp;Menu</string>
</property>
</action>
+ <action name="actionStatusBarToggle">
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string>St&amp;atus bar</string>
+ </property>
+ </action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<customwidgets>