From da2488f7d85a986fa19421b9478bb59192b76428 Mon Sep 17 00:00:00 2001 From: RickyRister <42636155+RickyRister@users.noreply.github.com> Date: Fri, 13 Jun 2025 05:55:04 -0700 Subject: [PATCH] Add option to hide status bar (#5983) * reorganize actions * add setting to settingsCache * use setting * add shortcut * fix typo --- cockatrice/src/client/ui/window_main.cpp | 14 ++++++++++++++ cockatrice/src/client/ui/window_main.h | 9 ++++++--- cockatrice/src/settings/cache_settings.cpp | 8 ++++++++ cockatrice/src/settings/cache_settings.h | 7 +++++++ cockatrice/src/settings/shortcuts_settings.h | 3 +++ dbconverter/src/mocks.cpp | 3 +++ tests/carddatabase/mocks.cpp | 3 +++ 7 files changed, 44 insertions(+), 3 deletions(-) diff --git a/cockatrice/src/client/ui/window_main.cpp b/cockatrice/src/client/ui/window_main.cpp index 721881c89..02372c7d6 100644 --- a/cockatrice/src/client/ui/window_main.cpp +++ b/cockatrice/src/client/ui/window_main.cpp @@ -62,6 +62,7 @@ #include #include #include +#include #include #include #include @@ -665,6 +666,7 @@ void MainWindow::retranslateUi() aFullScreen->setText(tr("&Full screen")); aRegister->setText(tr("&Register to server...")); aForgotPassword->setText(tr("&Restore password...")); + aStatusBar->setText(tr("Show Status Bar")); aSettings->setText(tr("&Settings...")); aSettings->setIcon(QPixmap("theme:icons/settings")); aExit->setText(tr("&Exit")); @@ -709,6 +711,10 @@ void MainWindow::createActions() connect(aSinglePlayer, &QAction::triggered, this, &MainWindow::actSinglePlayer); aWatchReplay = new QAction(this); connect(aWatchReplay, &QAction::triggered, this, &MainWindow::actWatchReplay); + aStatusBar = new QAction(this); + aStatusBar->setCheckable(true); + aStatusBar->setChecked(SettingsCache::instance().getShowStatusBar()); + connect(aStatusBar, &QAction::triggered, &SettingsCache::instance(), &SettingsCache::setShowStatusBar); aFullScreen = new QAction(this); aFullScreen->setCheckable(true); connect(aFullScreen, &QAction::toggled, this, &MainWindow::actFullScreen); @@ -795,8 +801,10 @@ void MainWindow::createMenus() cockatriceMenu->addAction(aSinglePlayer); cockatriceMenu->addAction(aWatchReplay); cockatriceMenu->addSeparator(); + cockatriceMenu->addAction(aStatusBar); cockatriceMenu->addAction(aFullScreen); cockatriceMenu->addSeparator(); + cockatriceMenu->addAction(aSettings); cockatriceMenu->addAction(aExit); @@ -878,6 +886,11 @@ MainWindow::MainWindow(QWidget *parent) createTrayIcon(); } + // status bar + connect(&SettingsCache::instance(), &SettingsCache::showStatusBarChanged, this, + [this](bool show) { statusBar()->setVisible(show); }); + statusBar()->setVisible(SettingsCache::instance().getShowStatusBar()); + connect(&SettingsCache::instance().shortcuts(), &ShortcutsSettings::shortCutChanged, this, &MainWindow::refreshShortcuts); refreshShortcuts(); @@ -1277,6 +1290,7 @@ void MainWindow::refreshShortcuts() aDisconnect->setShortcuts(shortcuts.getShortcut("MainWindow/aDisconnect")); aSinglePlayer->setShortcuts(shortcuts.getShortcut("MainWindow/aSinglePlayer")); aWatchReplay->setShortcuts(shortcuts.getShortcut("MainWindow/aWatchReplay")); + aStatusBar->setShortcuts(shortcuts.getShortcut("MainWindow/aStatusBar")); aFullScreen->setShortcuts(shortcuts.getShortcut("MainWindow/aFullScreen")); aRegister->setShortcuts(shortcuts.getShortcut("MainWindow/aRegister")); aSettings->setShortcuts(shortcuts.getShortcut("MainWindow/aSettings")); diff --git a/cockatrice/src/client/ui/window_main.h b/cockatrice/src/client/ui/window_main.h index 9910cf7fb..0da02b3fb 100644 --- a/cockatrice/src/client/ui/window_main.h +++ b/cockatrice/src/client/ui/window_main.h @@ -137,9 +137,12 @@ private: QList tabMenus; QMenu *cockatriceMenu, *dbMenu, *tabsMenu, *helpMenu, *trayIconMenu; - QAction *aConnect, *aDisconnect, *aSinglePlayer, *aWatchReplay, *aFullScreen, *aSettings, *aExit, *aAbout, *aTips, - *aCheckCardUpdates, *aRegister, *aForgotPassword, *aUpdate, *aViewLog, *aManageSets, *aEditTokens, - *aOpenCustomFolder, *aOpenCustomsetsFolder, *aAddCustomSet, *aReloadCardDatabase, *aShow, *aOpenSettingsFolder; + QAction *aAbout, *aSettings, *aShow, *aExit; + QAction *aConnect, *aDisconnect, *aRegister, *aForgotPassword, *aSinglePlayer, *aWatchReplay, *aStatusBar, + *aFullScreen; + QAction *aManageSets, *aEditTokens, *aOpenCustomFolder, *aOpenCustomsetsFolder, *aAddCustomSet, + *aReloadCardDatabase; + QAction *aTips, *aUpdate, *aCheckCardUpdates, *aViewLog, *aOpenSettingsFolder; TabSupervisor *tabSupervisor; WndSets *wndSets; diff --git a/cockatrice/src/settings/cache_settings.cpp b/cockatrice/src/settings/cache_settings.cpp index 65229bee0..8292f40df 100644 --- a/cockatrice/src/settings/cache_settings.cpp +++ b/cockatrice/src/settings/cache_settings.cpp @@ -237,6 +237,7 @@ SettingsCache::SettingsCache() redirectCacheTtl = settings->value("personal/redirectCacheTtl", NETWORK_REDIRECT_CACHE_TTL_DEFAULT).toInt(); picDownload = settings->value("personal/picturedownload", true).toBool(); + showStatusBar = settings->value("personal/showStatusBar", true).toBool(); mainWindowGeometry = settings->value("interface/main_window_geometry").toByteArray(); tokenDialogGeometry = settings->value("interface/token_dialog_geometry").toByteArray(); @@ -589,6 +590,13 @@ void SettingsCache::setPicDownload(QT_STATE_CHANGED_T _picDownload) emit picDownloadChanged(); } +void SettingsCache::setShowStatusBar(bool value) +{ + showStatusBar = value; + settings->setValue("personal/showStatusBar", showStatusBar); + emit showStatusBarChanged(value); +} + void SettingsCache::setNotificationsEnabled(QT_STATE_CHANGED_T _notificationsEnabled) { notificationsEnabled = static_cast(_notificationsEnabled); diff --git a/cockatrice/src/settings/cache_settings.h b/cockatrice/src/settings/cache_settings.h index d64e74750..dd8cade5b 100644 --- a/cockatrice/src/settings/cache_settings.h +++ b/cockatrice/src/settings/cache_settings.h @@ -55,6 +55,7 @@ signals: void cardDatabasePathChanged(); void themeChanged(); void picDownloadChanged(); + void showStatusBarChanged(bool state); void displayCardNamesChanged(); void overrideAllCardArtWithPersonalPreferenceChanged(bool _overrideAllCardArtWithPersonalPreference); void bumpSetsWithCardsInDeckToTopChanged(); @@ -222,6 +223,7 @@ private: QList releaseChannels; bool isPortableBuild; bool roundCardCorners; + bool showStatusBar; public: SettingsCache(); @@ -333,6 +335,10 @@ public: { return picDownload; } + bool getShowStatusBar() const + { + return showStatusBar; + } bool getNotificationsEnabled() const { return notificationsEnabled; @@ -828,6 +834,7 @@ public slots: void setChatMentionColor(const QString &_chatMentionColor); void setChatHighlightColor(const QString &_chatHighlightColor); void setPicDownload(QT_STATE_CHANGED_T _picDownload); + void setShowStatusBar(bool value); void setNotificationsEnabled(QT_STATE_CHANGED_T _notificationsEnabled); void setSpectatorNotificationsEnabled(QT_STATE_CHANGED_T _spectatorNotificationsEnabled); void setBuddyConnectNotificationsEnabled(QT_STATE_CHANGED_T _buddyConnectNotificationsEnabled); diff --git a/cockatrice/src/settings/shortcuts_settings.h b/cockatrice/src/settings/shortcuts_settings.h index dd8a60b68..ec705b434 100644 --- a/cockatrice/src/settings/shortcuts_settings.h +++ b/cockatrice/src/settings/shortcuts_settings.h @@ -158,6 +158,9 @@ private: ShortcutGroup::Main_Window)}, {"MainWindow/aExit", ShortcutKey(QT_TRANSLATE_NOOP("shortcutsTab", "Exit"), parseSequenceString(""), ShortcutGroup::Main_Window)}, + {"MainWindow/aStatusBar", ShortcutKey(QT_TRANSLATE_NOOP("shortcutsTab", "Show Status Bar"), + parseSequenceString(""), + ShortcutGroup::Main_Window)}, {"MainWindow/aFullScreen", ShortcutKey(QT_TRANSLATE_NOOP("shortcutsTab", "Full screen"), parseSequenceString("Ctrl+F"), ShortcutGroup::Main_Window)}, diff --git a/dbconverter/src/mocks.cpp b/dbconverter/src/mocks.cpp index ad9738a19..601ba706d 100644 --- a/dbconverter/src/mocks.cpp +++ b/dbconverter/src/mocks.cpp @@ -160,6 +160,9 @@ void SettingsCache::setTabLogOpen(bool /*value*/) void SettingsCache::setPicDownload(QT_STATE_CHANGED_T /* _picDownload */) { } +void SettingsCache::setShowStatusBar(bool /* value */) +{ +} void SettingsCache::setNotificationsEnabled(QT_STATE_CHANGED_T /* _notificationsEnabled */) { } diff --git a/tests/carddatabase/mocks.cpp b/tests/carddatabase/mocks.cpp index 05d0d2244..157595d2b 100644 --- a/tests/carddatabase/mocks.cpp +++ b/tests/carddatabase/mocks.cpp @@ -164,6 +164,9 @@ void SettingsCache::setTabLogOpen(bool /*value*/) void SettingsCache::setPicDownload(QT_STATE_CHANGED_T /* _picDownload */) { } +void SettingsCache::setShowStatusBar(bool /* value */) +{ +} void SettingsCache::setNotificationsEnabled(QT_STATE_CHANGED_T /* _notificationsEnabled */) { }