Merge pull request #288 from AdenKoperczak/add_qt6ct_darker_theme

Add qt6ct based fusion color palettes.
This commit is contained in:
Dan Paulat 2024-11-14 05:41:18 -06:00 committed by GitHub
commit 94bb3c9430
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
15 changed files with 465 additions and 224 deletions

View file

@ -27,6 +27,12 @@
#include <QStandardPaths>
#include <QStyleHints>
#include <QTranslator>
#include <QPalette>
#include <QStyle>
#define QT6CT_LIBRARY
#include <qt6ct-common/qt6ct.h>
#undef QT6CT_LIBRARY
static const std::string logPrefix_ = "scwx::main";
static const auto logger_ = scwx::util::Logger::Create(logPrefix_);
@ -162,6 +168,33 @@ static void ConfigureTheme(const std::vector<std::string>& args)
}
QGuiApplication::styleHints()->setColorScheme(qtColorScheme);
std::optional<std::string> paletteFile;
if (uiStyle == scwx::qt::types::UiStyle::FusionCustom) {
paletteFile = generalSettings.theme_file().GetValue();
}
else
{
paletteFile = scwx::qt::types::GetQtPaletteFile(uiStyle);
}
if (paletteFile)
{
QPalette defaultPalette = QApplication::style()->standardPalette();
QPalette palette = Qt6CT::loadColorScheme(
QString::fromStdString(*paletteFile), defaultPalette);
if (defaultPalette == palette)
{
logger_->warn("Failed to load palette file '{}'", *paletteFile);
}
else
{
logger_->info("Loaded palette file '{}'", *paletteFile);
}
QApplication::setPalette(palette);
}
}
static void