From 5a3289ee3c0caad2ba2facef4a759c010895254b Mon Sep 17 00:00:00 2001 From: xboxones1 <91512529+xboxones1@users.noreply.github.com> Date: Sun, 23 Feb 2025 21:32:51 +0900 Subject: [PATCH] Dynamically change the status bar color depending on the current screen (#11672) * Revert (https://github.com/keepassxreboot/keepassxc/pull/11455) * Do not use styles for QStatusBar * Dynamically change the status bar color depending on the current screen --- src/gui/MainWindow.cpp | 15 ++++++--------- src/gui/styles/base/basestyle.qss | 4 ---- src/gui/styles/dark/DarkStyle.cpp | 2 +- src/gui/styles/dark/darkstyle.qss | 4 ++-- src/gui/styles/light/LightStyle.cpp | 2 +- src/gui/styles/light/lightstyle.qss | 4 ++-- 6 files changed, 12 insertions(+), 19 deletions(-) diff --git a/src/gui/MainWindow.cpp b/src/gui/MainWindow.cpp index cd67a4982..a051187d6 100644 --- a/src/gui/MainWindow.cpp +++ b/src/gui/MainWindow.cpp @@ -687,11 +687,6 @@ MainWindow::MainWindow() restoreConfigState(); updateMenuActionState(); - - // Check the current screen and hide the status bar if it is the WelcomeScreen - if (m_ui->stackedWidget->currentIndex() == WelcomeScreen) { - statusBar()->hide(); - } } MainWindow::~MainWindow() @@ -1197,10 +1192,10 @@ void MainWindow::switchToDatabases() { if (m_ui->tabWidget->currentIndex() == -1) { m_ui->stackedWidget->setCurrentIndex(WelcomeScreen); - statusBar()->hide(); + statusBar()->setAutoFillBackground(false); } else { m_ui->stackedWidget->setCurrentIndex(DatabaseTabScreen); - statusBar()->show(); + statusBar()->setAutoFillBackground(true); } } @@ -1209,6 +1204,7 @@ void MainWindow::switchToSettings(bool enabled) if (enabled) { m_ui->settingsWidget->loadSettings(); m_ui->stackedWidget->setCurrentIndex(SettingsScreen); + statusBar()->setAutoFillBackground(true); } else { switchToDatabases(); } @@ -1220,6 +1216,7 @@ void MainWindow::togglePasswordGenerator(bool enabled) m_ui->passwordGeneratorWidget->loadSettings(); m_ui->passwordGeneratorWidget->regeneratePassword(); m_ui->stackedWidget->setCurrentIndex(PasswordGeneratorScreen); + statusBar()->setAutoFillBackground(false); } else { m_ui->passwordGeneratorWidget->saveSettings(); switchToDatabases(); @@ -1309,10 +1306,10 @@ void MainWindow::databaseTabChanged(int tabIndex) { if (tabIndex != -1 && m_ui->stackedWidget->currentIndex() == WelcomeScreen) { m_ui->stackedWidget->setCurrentIndex(DatabaseTabScreen); - statusBar()->show(); + statusBar()->setAutoFillBackground(true); } else if (tabIndex == -1 && m_ui->stackedWidget->currentIndex() == DatabaseTabScreen) { m_ui->stackedWidget->setCurrentIndex(WelcomeScreen); - statusBar()->hide(); + statusBar()->setAutoFillBackground(false); } m_actionMultiplexer.setCurrentObject(m_ui->tabWidget->currentDatabaseWidget()); diff --git a/src/gui/styles/base/basestyle.qss b/src/gui/styles/base/basestyle.qss index 34cc283dd..d5211e90a 100644 --- a/src/gui/styles/base/basestyle.qss +++ b/src/gui/styles/base/basestyle.qss @@ -72,10 +72,6 @@ QPlainTextEdit, QTextEdit { padding-left: 4px; } -QStatusBar { - background-color: palette(window); -} - *[title="true"] { font-weight: bold; } diff --git a/src/gui/styles/dark/DarkStyle.cpp b/src/gui/styles/dark/DarkStyle.cpp index 5b021b19a..daf16aaac 100644 --- a/src/gui/styles/dark/DarkStyle.cpp +++ b/src/gui/styles/dark/DarkStyle.cpp @@ -113,7 +113,7 @@ QString DarkStyle::getAppStyleSheet() const void DarkStyle::polish(QWidget* widget) { if (qobject_cast(widget) || qobject_cast(widget) || qobject_cast(widget) - || qobject_cast(widget) || qobject_cast(widget)) { + || qobject_cast(widget)) { auto palette = widget->palette(); #if defined(Q_OS_MACOS) if (!osUtils->isDarkMode()) { diff --git a/src/gui/styles/dark/darkstyle.qss b/src/gui/styles/dark/darkstyle.qss index 8da2d1a40..716430113 100644 --- a/src/gui/styles/dark/darkstyle.qss +++ b/src/gui/styles/dark/darkstyle.qss @@ -1,12 +1,12 @@ DatabaseWidget:!active, DatabaseWidget #groupView:!active, DatabaseWidget #tagView:!active, -EntryPreviewWidget *:!active[blendIn="true"], QStatusBar:!active { +EntryPreviewWidget *:!active[blendIn="true"] { background-color: #404042; } DatabaseWidget:disabled, DatabaseWidget #groupView:disabled, DatabaseWidget #tagView:disabled, -EntryPreviewWidget *:disabled[blendIn="true"], QStatusBar:disabled { +EntryPreviewWidget *:disabled[blendIn="true"] { background-color: #424242; } diff --git a/src/gui/styles/light/LightStyle.cpp b/src/gui/styles/light/LightStyle.cpp index d20b1ef36..f73995412 100644 --- a/src/gui/styles/light/LightStyle.cpp +++ b/src/gui/styles/light/LightStyle.cpp @@ -113,7 +113,7 @@ QString LightStyle::getAppStyleSheet() const void LightStyle::polish(QWidget* widget) { if (qobject_cast(widget) || qobject_cast(widget) || qobject_cast(widget) - || qobject_cast(widget) || qobject_cast(widget)) { + || qobject_cast(widget)) { auto palette = widget->palette(); #if defined(Q_OS_MACOS) if (osUtils->isDarkMode()) { diff --git a/src/gui/styles/light/lightstyle.qss b/src/gui/styles/light/lightstyle.qss index 0eaf7ca88..123267c30 100644 --- a/src/gui/styles/light/lightstyle.qss +++ b/src/gui/styles/light/lightstyle.qss @@ -1,12 +1,12 @@ DatabaseWidget:!active, DatabaseWidget #groupView:!active, DatabaseWidget #tagView:!active, -EntryPreviewWidget *:!active[blendIn="true"], QStatusBar:!active { +EntryPreviewWidget *:!active[blendIn="true"] { background-color: #FCFCFC; } DatabaseWidget:disabled, DatabaseWidget #groupView:disabled, DatabaseWidget #tagView:disabled, -EntryPreviewWidget *:disabled[blendIn="true"], QStatusBar:disabled { +EntryPreviewWidget *:disabled[blendIn="true"] { background-color: #EDEDED; }