forked from blue/squawk
63 lines
1.7 KiB
C++
63 lines
1.7 KiB
C++
#include "pageappearance.h"
|
|
#include "ui_pageappearance.h"
|
|
|
|
#include <QDebug>
|
|
#include <QStandardPaths>
|
|
#include <QDir>
|
|
|
|
static const QStringList filters = {"*.colors"};
|
|
|
|
PageAppearance::PageAppearance(QWidget* parent):
|
|
QWidget(parent),
|
|
m_ui(new Ui::PageAppearance()),
|
|
styles()
|
|
{
|
|
m_ui->setupUi(this);
|
|
|
|
m_ui->themeInput->addItem(tr("System"));
|
|
styles.push_back("system");
|
|
QStringList themes = QStyleFactory::keys();
|
|
for (const QString& key : themes) {
|
|
m_ui->themeInput->addItem(key);
|
|
styles.push_back(key);
|
|
}
|
|
|
|
QSettings settings;
|
|
QVariant vtheme = settings.value("theme");
|
|
if (vtheme.isValid()) {
|
|
QString theme = vtheme.toString();
|
|
m_ui->themeInput->setCurrentText(theme);
|
|
} else {
|
|
m_ui->themeInput->setCurrentText("System");
|
|
}
|
|
|
|
connect(m_ui->themeInput, qOverload<int>(&QComboBox::currentIndexChanged), this, &PageAppearance::onThemeChanged);
|
|
|
|
if (Shared::Global::supported("colorSchemeTools")) {
|
|
m_ui->colorInput->addItem(tr("System"));
|
|
const QStringList dirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, "color-schemes", QStandardPaths::LocateDirectory);
|
|
QStringList schemeFiles;
|
|
for (const QString &dir : dirs) {
|
|
const QStringList fileNames = QDir(dir).entryList(filters);
|
|
for (const QString &file : fileNames) {
|
|
m_ui->colorInput->addItem(Shared::Global::createThemePreview(dir + QDir::separator() + file), file);
|
|
}
|
|
}
|
|
} else {
|
|
m_ui->colorInput->setEnabled(false);
|
|
}
|
|
}
|
|
|
|
PageAppearance::~PageAppearance()
|
|
{
|
|
}
|
|
|
|
void PageAppearance::onThemeChanged(int index)
|
|
{
|
|
if (index >= 0) {
|
|
emit variableModified("theme", styles[index]);
|
|
}
|
|
}
|
|
|
|
|