From f21d61237abb6d5a5c12a14840ebecdf92bba0d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Br=C3=BCbach?= Date: Sun, 19 Apr 2026 10:12:08 +0200 Subject: [PATCH] Change button colors to be palette aware. Took 13 minutes Took 41 seconds Took 15 seconds --- ...se_display_format_legality_filter_widget.cpp | 17 +++++++++++++++-- ...database_display_main_type_filter_widget.cpp | 17 +++++++++++++++-- ...sual_database_display_name_filter_widget.cpp | 17 +++++++++++++++-- ...isual_database_display_set_filter_widget.cpp | 17 +++++++++++++++-- ..._database_display_sub_type_filter_widget.cpp | 17 +++++++++++++++-- 5 files changed, 75 insertions(+), 10 deletions(-) diff --git a/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_format_legality_filter_widget.cpp b/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_format_legality_filter_widget.cpp index 0df948016..39bef7c6d 100644 --- a/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_format_legality_filter_widget.cpp +++ b/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_format_legality_filter_widget.cpp @@ -80,8 +80,21 @@ void VisualDatabaseDisplayFormatLegalityFilterWidget::createFormatButtons() for (auto it = allFormatsWithCount.begin(); it != allFormatsWithCount.end(); ++it) { auto *button = new QPushButton(it.key(), flowWidget); button->setCheckable(true); - button->setStyleSheet("QPushButton { background-color: lightgray; border: 1px solid gray; padding: 5px; }" - "QPushButton:checked { background-color: green; color: white; }"); + QPalette pal = button->palette(); + QString base = pal.button().color().name(); + QString highlight = pal.highlight().color().name(); + + button->setStyleSheet(QString(R"( + QPushButton { + background-color: %1; + padding: 5px; + } + QPushButton:checked { + background-color: %2; + color: white; + } +)") + .arg(base, highlight)); flowWidget->addWidget(button); formatButtons[it.key()] = button; diff --git a/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_main_type_filter_widget.cpp b/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_main_type_filter_widget.cpp index bc8e914bd..3399c9704 100644 --- a/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_main_type_filter_widget.cpp +++ b/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_main_type_filter_widget.cpp @@ -75,8 +75,21 @@ void VisualDatabaseDisplayMainTypeFilterWidget::createMainTypeButtons() for (auto it = allMainCardTypesWithCount.begin(); it != allMainCardTypesWithCount.end(); ++it) { auto *button = new QPushButton(it.key(), flowWidget); button->setCheckable(true); - button->setStyleSheet("QPushButton { background-color: lightgray; border: 1px solid gray; padding: 5px; }" - "QPushButton:checked { background-color: green; color: white; }"); + QPalette pal = button->palette(); + QString base = pal.button().color().name(); + QString highlight = pal.highlight().color().name(); + + button->setStyleSheet(QString(R"( + QPushButton { + background-color: %1; + padding: 5px; + } + QPushButton:checked { + background-color: %2; + color: white; + } +)") + .arg(base, highlight)); flowWidget->addWidget(button); typeButtons[it.key()] = button; diff --git a/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_name_filter_widget.cpp b/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_name_filter_widget.cpp index 5098696dd..7b78a0873 100644 --- a/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_name_filter_widget.cpp +++ b/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_name_filter_widget.cpp @@ -95,8 +95,21 @@ void VisualDatabaseDisplayNameFilterWidget::createNameFilter(const QString &name // Create a button for the filter auto *button = new QPushButton(name, flowWidget); - button->setStyleSheet("QPushButton { background-color: lightgray; border: 1px solid gray; padding: 5px; }" - "QPushButton:hover { background-color: red; color: white; }"); + QPalette pal = button->palette(); + QString base = pal.button().color().name(); + QString highlight = pal.highlight().color().name(); + + button->setStyleSheet(QString(R"( + QPushButton { + background-color: %1; + padding: 5px; + } + QPushButton:checked { + background-color: %2; + color: white; + } +)") + .arg(base, highlight)); connect(button, &QPushButton::clicked, this, [this, name]() { removeNameFilter(name); diff --git a/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_set_filter_widget.cpp b/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_set_filter_widget.cpp index 3339bc561..86c44299c 100644 --- a/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_set_filter_widget.cpp +++ b/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_set_filter_widget.cpp @@ -101,8 +101,21 @@ void VisualDatabaseDisplaySetFilterWidget::createSetButtons() auto *button = new QPushButton(longName + " (" + shortName + ")", flowWidget); button->setCheckable(true); - button->setStyleSheet("QPushButton { background-color: lightgray; border: 1px solid gray; padding: 5px; }" - "QPushButton:checked { background-color: green; color: white; }"); + QPalette pal = button->palette(); + QString base = pal.button().color().name(); + QString highlight = pal.highlight().color().name(); + + button->setStyleSheet(QString(R"( + QPushButton { + background-color: %1; + padding: 5px; + } + QPushButton:checked { + background-color: %2; + color: white; + } +)") + .arg(base, highlight)); flowWidget->addWidget(button); setButtons[shortName] = button; diff --git a/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_sub_type_filter_widget.cpp b/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_sub_type_filter_widget.cpp index 57559d12c..0204a8adb 100644 --- a/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_sub_type_filter_widget.cpp +++ b/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_sub_type_filter_widget.cpp @@ -80,8 +80,21 @@ void VisualDatabaseDisplaySubTypeFilterWidget::createSubTypeButtons() for (auto it = allSubCardTypesWithCount.begin(); it != allSubCardTypesWithCount.end(); ++it) { auto *button = new QPushButton(it.key(), flowWidget); button->setCheckable(true); - button->setStyleSheet("QPushButton { background-color: lightgray; border: 1px solid gray; padding: 5px; }" - "QPushButton:checked { background-color: green; color: white; }"); + QPalette pal = button->palette(); + QString base = pal.button().color().name(); + QString highlight = pal.highlight().color().name(); + + button->setStyleSheet(QString(R"( + QPushButton { + background-color: %1; + padding: 5px; + } + QPushButton:checked { + background-color: %2; + color: white; + } +)") + .arg(base, highlight)); flowWidget->addWidget(button); typeButtons[it.key()] = button;