Initial implementation of theming

This commit is contained in:
luisangelsm
2026-02-19 17:39:22 +01:00
parent ed28c94f66
commit 044176d6b7
303 changed files with 4634 additions and 2119 deletions

View File

@ -1,5 +1,22 @@
#include "add_label_dialog.h"
namespace {
const char *labelColorNames[] = {
QT_TR_NOOP("red"),
QT_TR_NOOP("orange"),
QT_TR_NOOP("yellow"),
QT_TR_NOOP("green"),
QT_TR_NOOP("cyan"),
QT_TR_NOOP("blue"),
QT_TR_NOOP("violet"),
QT_TR_NOOP("purple"),
QT_TR_NOOP("pink"),
QT_TR_NOOP("white"),
QT_TR_NOOP("light"),
QT_TR_NOOP("dark")
};
}
AddLabelDialog::AddLabelDialog(QWidget *parent)
: QDialog(parent)
{
@ -11,21 +28,10 @@ AddLabelDialog::AddLabelDialog(QWidget *parent)
layout->addWidget(new QLabel(tr("Choose a color:")));
layout->addWidget(list = new QListWidget());
list->addItem(new QListWidgetItem(QIcon(":/images/lists/label_red.svg"), tr("red")));
list->addItem(new QListWidgetItem(QIcon(":/images/lists/label_orange.svg"), tr("orange")));
list->addItem(new QListWidgetItem(QIcon(":/images/lists/label_yellow.svg"), tr("yellow")));
list->addItem(new QListWidgetItem(QIcon(":/images/lists/label_green.svg"), tr("green")));
list->addItem(new QListWidgetItem(QIcon(":/images/lists/label_cyan.svg"), tr("cyan")));
list->addItem(new QListWidgetItem(QIcon(":/images/lists/label_blue.svg"), tr("blue")));
list->addItem(new QListWidgetItem(QIcon(":/images/lists/label_violet.svg"), tr("violet")));
list->addItem(new QListWidgetItem(QIcon(":/images/lists/label_purple.svg"), tr("purple")));
list->addItem(new QListWidgetItem(QIcon(":/images/lists/label_pink.svg"), tr("pink")));
list->addItem(new QListWidgetItem(QIcon(":/images/lists/label_white.svg"), tr("white")));
list->addItem(new QListWidgetItem(QIcon(":/images/lists/label_light.svg"), tr("light")));
list->addItem(new QListWidgetItem(QIcon(":/images/lists/label_dark.svg"), tr("dark")));
for (const auto &colorName : labelColorNames) {
list->addItem(new QListWidgetItem(tr(colorName)));
}
QColor backgroundColor = this->palette().window().color();
list->setStyleSheet(QString("QListWidget {border : none; background-color: rgb(%1,%2,%3);}").arg(backgroundColor.red()).arg(backgroundColor.green()).arg(backgroundColor.blue()));
list->setMinimumHeight(225);
setModal(true);
@ -50,6 +56,22 @@ AddLabelDialog::AddLabelDialog(QWidget *parent)
connect(edit, &QLineEdit::textChanged, this, &AddLabelDialog::validateName);
connect(cancelButton, &QAbstractButton::clicked, this, &QWidget::close);
connect(acceptButton, &QAbstractButton::clicked, this, &QDialog::accept);
initTheme(this);
}
void AddLabelDialog::applyTheme(const Theme &theme)
{
const auto &icons = theme.readingListIcons.labelIcons;
for (int i = 0; i < list->count(); ++i) {
const QString colorName = labelColorNames[i];
if (icons.contains(colorName)) {
list->item(i)->setIcon(icons[colorName]);
}
}
list->setStyleSheet("QListWidget {border : none;}");
}
YACReader::LabelColors AddLabelDialog::selectedColor()