mirror of
https://github.com/YACReader/yacreader
synced 2026-03-02 10:50:04 -05:00
Initial implementation of theming
This commit is contained in:
@ -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()
|
||||
|
||||
Reference in New Issue
Block a user