ThemeManager::ThemeManager(QWidget* parent) : QWidget() , ui(new Ui::ThemeManager) { ui->setupUi(parent); ui->license->hide(); Settings settings; settings.beginGroup("Themes"); m_activeTheme = settings.value("activeTheme", DEFAULT_THEME_NAME).toString(); settings.endGroup(); QDir themeDir(mApp->THEMESDIR); QStringList list = themeDir.entryList(QDir::AllDirs | QDir::NoDotAndDotDot); foreach(QString name, list) { Theme themeInfo = parseTheme(name); if (!themeInfo.isValid) { continue; } QListWidgetItem* item = new QListWidgetItem(ui->listWidget); item->setText(themeInfo.name + "\n" + themeInfo.shortDescription); item->setIcon(themeInfo.icon); item->setData(Qt::UserRole, name); if (m_activeTheme == name) { ui->listWidget->setCurrentItem(item); } ui->listWidget->addItem(item); }
ThemeManager::ThemeManager(QWidget* parent, Preferences* preferences) : QWidget() , ui(new Ui::ThemeManager) , m_preferences(preferences) { ui->setupUi(parent); ui->listWidget->setLayoutDirection(Qt::LeftToRight); ui->license->hide(); Settings settings; settings.beginGroup("Themes"); m_activeTheme = settings.value("activeTheme", DEFAULT_THEME_NAME).toString(); settings.endGroup(); QStringList themePaths; themePaths << mApp->currentProfilePath() + "themes/" << mApp->PROFILEDIR + "themes/" << mApp->THEMESDIR; foreach (const QString &path, themePaths) { QDir dir(path); QStringList list = dir.entryList(QDir::AllDirs | QDir::NoDotAndDotDot); foreach (const QString &name, list) { Theme themeInfo = parseTheme(dir.absoluteFilePath(name) + "/", name); if (!themeInfo.isValid) { continue; } QListWidgetItem* item = new QListWidgetItem(ui->listWidget); item->setText(themeInfo.name + "\n" + themeInfo.shortDescription); item->setIcon(themeInfo.icon); item->setData(Qt::UserRole, name); if (m_activeTheme == name) { ui->listWidget->setCurrentItem(item); } ui->listWidget->addItem(item); }