10#include <QLoggingCategory>
13#include "ui_FrmStyle.h"
15#include "RabbitCommonDir.h"
17static Q_LOGGING_CATEGORY(log,
"RabbitCommon.Style")
23 qDebug(log) << Q_FUNC_INFO;
24 setAttribute(Qt::WA_DeleteOnClose,
true);
27 ui->leStyleName->setText(RabbitCommon::CStyle::Instance()->GetStyleFile());
29 ui->lbIconThemeChanged->setVisible(
false);
31 QSettings set(RabbitCommon::CDir::Instance()->GetFileUserConfigure(),
32 QSettings::IniFormat);
33 bool bIconTheme = set.value(
"Style/Icon/Theme/Enable",
true).toBool();
34 ui->gpIconTheme->setChecked(bIconTheme);
37 <<
"Icon theme name:" << QIcon::themeName() <<
"\n"
38 <<
"Icon theme search paths:" << QIcon::themeSearchPaths() <<
"\n"
39 #if QT_VERSION >= QT_VERSION_CHECK(5, 12, 0)
40 <<
"Fallback theme name:" << QIcon::fallbackThemeName() <<
"\n"
42 #if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0)
43 <<
"Fallback search paths:" << QIcon::fallbackSearchPaths() <<
"\n"
46 foreach(
auto d, QIcon::themeSearchPaths())
52 <<
"Theme folder isn't exists:" << d;
56 qInfo(log) <<
"Theme folder:" << dir.absolutePath();
60 foreach(
auto themeName, dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot))
62 qDebug(log) <<
"Theme path:" << dir.absolutePath()
63 <<
"Theme:" << themeName;
64 QFileInfo fi(dir.absolutePath() + QDir::separator()
65 + themeName + QDir::separator() +
"index.theme");
68 qDebug(log) <<
"Theme:" << themeName;
69 ui->cbIconTheme->addItem(themeName);
71 qCritical(log) <<
"index.theme is not exists:" << fi.fileName()
72 <<
"Theme:" << themeName;
76 if(!QIcon::themeName().isEmpty())
77 ui->cbIconTheme->setCurrentText(QIcon::themeName());
79#if QT_VERSION >= QT_VERSION_CHECK(5, 12, 0) && !defined(Q_OS_WINDOWS)
80 QDir fallbackDir(RabbitCommon::CDir::Instance()->GetDirIcons());
81 QStringList lstFallback;
82 if(fallbackDir.exists())
84 foreach(
auto themeName, fallbackDir.entryList(QDir::Dirs | QDir::NoDotAndDotDot))
86 qDebug(log) <<
"fallback path:" << fallbackDir.absolutePath()
87 <<
"Theme:" << themeName;
88 QFileInfo fi(fallbackDir.absolutePath() + QDir::separator()
89 + themeName + QDir::separator() +
"index.theme");
92 qDebug(log) <<
"fallback Theme:" << themeName;
93 ui->cbFallbackTheme->addItem(themeName);
97 if(!QIcon::fallbackThemeName().isEmpty())
99 ui->cbFallbackTheme->setCurrentText(QIcon::fallbackThemeName());
101 ui->gbFallbackTheme->setVisible(
true);
103 ui->gbFallbackTheme->setVisible(
false);
108CFrmStyle::~CFrmStyle()
110 qDebug(log) <<
"CFrmStyle::~CFrmStyle()";
114void CFrmStyle::on_pbOK_clicked()
116 QSettings set(RabbitCommon::CDir::Instance()->GetFileUserConfigure(),
117 QSettings::IniFormat);
119 bool bIconTheme = ui->gpIconTheme->isChecked();
120 set.setValue(
"Style/Icon/Theme/Enable", bIconTheme);
122 if(!ui->cbIconTheme->currentText().isEmpty())
123 QIcon::setThemeName(ui->cbIconTheme->currentText());
124 set.setValue(
"Style/Icon/Theme", QIcon::themeName());
126#if QT_VERSION >= QT_VERSION_CHECK(5, 12, 0)
127 if(!ui->cbFallbackTheme->currentText().isEmpty())
128 QIcon::setFallbackThemeName(ui->cbFallbackTheme->currentText());
129 set.setValue(
"Style/Icon/Theme/Fallback", QIcon::fallbackThemeName());
133 RabbitCommon::CStyle::Instance()->SetFile(ui->leStyleName->text());
137void CFrmStyle::on_pbCancel_clicked()
142void CFrmStyle::on_pbBrowse_clicked()
144 ui->leStyleName->setText(RabbitCommon::CStyle::Instance()->GetStyle());
147void CFrmStyle::on_pbDefault_clicked()
149 ui->leStyleName->setText(RabbitCommon::CStyle::Instance()->GetDefaultStyle());
151 if(ui->gpIconTheme->isChecked()) {
152 ui->cbIconTheme->setCurrentText(
153 RabbitCommon::CStyle::Instance()->m_szDefaultIconTheme);
154 ui->cbFallbackTheme->setCurrentText(
155 RabbitCommon::CStyle::Instance()->m_szDefaultFallbackIconTheme);
159void CFrmStyle::on_gpIconTheme_clicked()
161 ui->lbIconThemeChanged->setVisible(
true);
Set style and icon theme form.