Mercurial > minori
changeset 368:6d37a998cf91
gui/dialog: consolidate win32 dark theme cruft into a single class
author | Paper <paper@tflc.us> |
---|---|
date | Fri, 25 Jul 2025 10:05:23 -0400 |
parents | 8d45d892be88 |
children | 47c9f8502269 |
files | CMakeLists.txt include/gui/dialog/about.h include/gui/dialog/dialog.h include/gui/dialog/information.h include/gui/dialog/licenses.h include/gui/dialog/settings.h src/gui/dialog/about.cc src/gui/dialog/dialog.cc src/gui/dialog/information.cc src/gui/dialog/licenses.cc src/gui/dialog/settings.cc |
diffstat | 11 files changed, 46 insertions(+), 52 deletions(-) [+] |
line wrap: on
line diff
--- a/CMakeLists.txt Sun Nov 17 22:55:47 2024 -0500 +++ b/CMakeLists.txt Fri Jul 25 10:05:23 2025 -0400 @@ -68,6 +68,7 @@ include/core/http.h include/core/session.h include/gui/dialog/about.h + include/gui/dialog/dialog.h include/gui/dialog/licenses.h include/gui/dialog/information.h include/gui/dialog/settings.h @@ -141,6 +142,7 @@ # Dialogs src/gui/dialog/about.cc + src/gui/dialog/dialog.cc src/gui/dialog/licenses.cc src/gui/dialog/information.cc src/gui/dialog/settings.cc
--- a/include/gui/dialog/about.h Sun Nov 17 22:55:47 2024 -0500 +++ b/include/gui/dialog/about.h Fri Jul 25 10:05:23 2025 -0400 @@ -1,16 +1,13 @@ #ifndef MINORI_GUI_DIALOG_ABOUT_H_ #define MINORI_GUI_DIALOG_ABOUT_H_ -#include <QDialog> +#include "gui/dialog/dialog.h" -class AboutWindow final : public QDialog { +class AboutWindow final : public Dialog { Q_OBJECT public: AboutWindow(QWidget* parent = nullptr); - -protected: - void showEvent(QShowEvent* event) override; }; #endif // MINORI_GUI_DIALOG_ABOUT_H_
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/include/gui/dialog/dialog.h Fri Jul 25 10:05:23 2025 -0400 @@ -0,0 +1,17 @@ +#ifndef MINORI_GUI_DIALOG_DIALOG_H_ +#define MINORI_GUI_DIALOG_DIALOG_H_ + +/* generic dialog widget; this abstracts away the win32 title bar hackery */ +#include <QDialog> + +class Dialog : public QDialog { + Q_OBJECT + +public: + Dialog(QWidget *parent = nullptr) : QDialog(parent) {} + +protected: + void showEvent(QShowEvent *event) override; +}; + +#endif // MINORI_GUI_DIALOG_DIALOG_H_
--- a/include/gui/dialog/information.h Sun Nov 17 22:55:47 2024 -0500 +++ b/include/gui/dialog/information.h Fri Jul 25 10:05:23 2025 -0400 @@ -3,10 +3,10 @@ #include "core/anime.h" #include "core/date.h" -#include <QDialog> +#include "gui/dialog/dialog.h" #include <functional> -class InformationDialog final : public QDialog { +class InformationDialog final : public Dialog { Q_OBJECT public: @@ -15,12 +15,11 @@ PAGE_MY_LIST }; + /* weird, the page should be first + * also this should take an anime ID, rather than a pointer --paper */ InformationDialog(Anime::Anime* anime, std::function<void(Anime::Anime*)> accept = {}, enum Pages page = Pages::PAGE_MAIN_INFO, QWidget* parent = nullptr); -protected: - void showEvent(QShowEvent* event) override; - private: void SaveData(Anime::Anime* anime); unsigned int _progress;
--- a/include/gui/dialog/licenses.h Sun Nov 17 22:55:47 2024 -0500 +++ b/include/gui/dialog/licenses.h Fri Jul 25 10:05:23 2025 -0400 @@ -1,16 +1,13 @@ #ifndef MINORI_GUI_DIALOG_LICENSES_H_ #define MINORI_GUI_DIALOG_LICENSES_H_ -#include <QDialog> +#include "gui/dialog/dialog.h" -class LicensesWindow final : public QDialog { +class LicensesWindow final : public Dialog { Q_OBJECT public: LicensesWindow(QWidget* parent = nullptr); - -protected: - void showEvent(QShowEvent* event) override; }; #endif // MINORI_GUI_DIALOG_LICENSES_H_
--- a/include/gui/dialog/settings.h Sun Nov 17 22:55:47 2024 -0500 +++ b/include/gui/dialog/settings.h Fri Jul 25 10:05:23 2025 -0400 @@ -5,7 +5,7 @@ #include "core/config.h" #include "core/session.h" #include "gui/widgets/sidebar.h" -#include <QDialog> +#include "gui/dialog/dialog.h" #include <QDialogButtonBox> #include <QLabel> #include <QListWidget> @@ -108,7 +108,7 @@ decltype(session.config.library.real_time_monitor) real_time_monitor; }; -class SettingsDialog final : public QDialog { +class SettingsDialog final : public Dialog { Q_OBJECT public: @@ -116,9 +116,6 @@ QWidget* CreateServicesMainPage(QWidget* parent); void OnOK(); -protected: - void showEvent(QShowEvent* event) override; - private: QVBoxLayout layout_;
--- a/src/gui/dialog/about.cc Sun Nov 17 22:55:47 2024 -0500 +++ b/src/gui/dialog/about.cc Fri Jul 25 10:05:23 2025 -0400 @@ -63,7 +63,7 @@ "</ul>" "</body>"; -AboutWindow::AboutWindow(QWidget* parent) : QDialog(parent) { +AboutWindow::AboutWindow(QWidget* parent) : Dialog(parent) { setMinimumSize(641, 325); setWindowTitle(tr("About Minori")); setWindowFlags(Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::WindowCloseButtonHint); @@ -95,10 +95,3 @@ }); } } - -void AboutWindow::showEvent(QShowEvent* event) { - QDialog::showEvent(event); -#ifdef WIN32 - win32::SetTitleBarsToBlack(session.config.theme.IsInDarkTheme()); -#endif -}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/gui/dialog/dialog.cc Fri Jul 25 10:05:23 2025 -0400 @@ -0,0 +1,13 @@ +#include "gui/dialog/dialog.h" +#include "gui/widgets/text.h" + +#ifdef WIN32 +# include "sys/win32/dark_theme.h" +#endif + +void Dialog::showEvent(QShowEvent* event) { + QDialog::showEvent(event); +#ifdef WIN32 + win32::SetTitleBarsToBlack(session.config.theme.IsInDarkTheme()); +#endif +}
--- a/src/gui/dialog/information.cc Sun Nov 17 22:55:47 2024 -0500 +++ b/src/gui/dialog/information.cc Fri Jul 25 10:05:23 2025 -0400 @@ -47,7 +47,7 @@ InformationDialog::InformationDialog(Anime::Anime* anime, std::function<void(Anime::Anime*)> accept, enum Pages page, QWidget* parent) - : QDialog(parent) { + : Dialog(parent) { /* ack. lots of brackets here, but MUCH, MUCH MUCH better than what it used to be */ setFixedSize(842, 613); setWindowTitle(tr("Anime Information")); @@ -317,10 +317,3 @@ full_layout->addWidget(button_box, 0, Qt::AlignBottom); } } - -void InformationDialog::showEvent(QShowEvent* event) { - QDialog::showEvent(event); -#ifdef WIN32 - win32::SetTitleBarsToBlack(session.config.theme.IsInDarkTheme()); -#endif -}
--- a/src/gui/dialog/licenses.cc Sun Nov 17 22:55:47 2024 -0500 +++ b/src/gui/dialog/licenses.cc Fri Jul 25 10:05:23 2025 -0400 @@ -63,7 +63,7 @@ tab_widget->addTab(dual, title1); } -LicensesWindow::LicensesWindow(QWidget* parent) : QDialog(parent) { +LicensesWindow::LicensesWindow(QWidget* parent) : Dialog(parent) { resize(641, 500); setWindowTitle(tr("About Minori")); setWindowFlags(Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::WindowCloseButtonHint); @@ -88,10 +88,3 @@ create_basic_license(tab_widget, ":/licenses/LICENSE.toml11", tr("toml11")); create_basic_license(tab_widget, ":/licenses/LICENSE.utf8proc", tr("utf8proc")); } - -void LicensesWindow::showEvent(QShowEvent* event) { - QDialog::showEvent(event); -#ifdef WIN32 - win32::SetTitleBarsToBlack(session.config.theme.IsInDarkTheme()); -#endif -}
--- a/src/gui/dialog/settings.cc Sun Nov 17 22:55:47 2024 -0500 +++ b/src/gui/dialog/settings.cc Fri Jul 25 10:05:23 2025 -0400 @@ -71,15 +71,8 @@ QDialog::accept(); } -void SettingsDialog::showEvent(QShowEvent* event) { - QDialog::showEvent(event); -#ifdef WIN32 - win32::SetTitleBarsToBlack(session.config.theme.IsInDarkTheme()); -#endif -} - SettingsDialog::SettingsDialog(QWidget* parent) - : QDialog(parent) + : Dialog(parent) , layout_(this) , widget_layout_(&widget_) , button_box_(QDialogButtonBox::Ok | QDialogButtonBox::Cancel) {