Refresh custom colors once color scheme is changed

PR #20588.
This commit is contained in:
Vladimir Golovnev
2024-03-23 11:32:07 +03:00
committed by GitHub
parent 25b7972f88
commit ce013f132f
11 changed files with 195 additions and 126 deletions

View File

@@ -1,6 +1,6 @@
/*
* Bittorrent Client using Qt and libtorrent.
* Copyright (C) 2023 Vladimir Golovnev <glassez@yandex.ru>
* Copyright (C) 2023-2024 Vladimir Golovnev <glassez@yandex.ru>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -64,21 +64,23 @@ namespace
}
}
class ColorWidget final : public QFrame
class ColorWidget final : public QLabel
{
Q_DISABLE_COPY_MOVE(ColorWidget)
Q_DECLARE_TR_FUNCTIONS(ColorWidget)
public:
explicit ColorWidget(const QColor &currentColor, const QColor &defaultColor, QWidget *parent = nullptr)
: QFrame(parent)
: QLabel(parent)
, m_defaultColor {defaultColor}
, m_currentColor {currentColor}
{
setObjectName(u"colorWidget"_s);
setFrameShape(QFrame::Box);
setFrameShadow(QFrame::Plain);
setAlignment(Qt::AlignCenter);
setCurrentColor(currentColor);
applyColor(currentColor);
}
QColor currentColor() const
@@ -119,7 +121,16 @@ private:
void applyColor(const QColor &color)
{
setStyleSheet(u"#colorWidget { background-color: %1; }"_s.arg(color.name()));
if (color.isValid())
{
setStyleSheet(u"#colorWidget { background-color: %1; }"_s.arg(color.name()));
setText({});
}
else
{
setStyleSheet({});
setText(tr("System"));
}
}
void showColorDialog()
@@ -262,6 +273,8 @@ void UIThemeDialog::loadColors()
int row = 2;
for (const QString &id : colorIDs)
{
if (id == u"Log.Normal")
qDebug() << "!!!!!!!";
m_ui->colorsLayout->addWidget(new QLabel(id), row, 0);
const UIThemeColor &defaultColor = defaultColors.value(id);