From 426edb6fe73c5433ebbdb4a7eb218c33fed8d4f9 Mon Sep 17 00:00:00 2001 From: Stefan Hacker Date: Tue, 8 Sep 2015 01:00:10 +0200 Subject: [PATCH] Add link to user themes directory to LookConfig --- src/mumble/LookConfig.cpp | 19 +++++++++++++------ src/mumble/LookConfig.ui | 12 +++++++++++- src/mumble/Themes.cpp | 6 +++++- src/mumble/Themes.h | 3 +++ 4 files changed, 32 insertions(+), 8 deletions(-) diff --git a/src/mumble/LookConfig.cpp b/src/mumble/LookConfig.cpp index f3aa1d98fdd..dc6c81ad2c9 100644 --- a/src/mumble/LookConfig.cpp +++ b/src/mumble/LookConfig.cpp @@ -81,6 +81,13 @@ LookConfig::LookConfig(Settings &st) : ConfigWidget(st) { qcbChannelDrag->insertItem(Settings::Ask, tr("Ask"), Settings::Ask); qcbChannelDrag->insertItem(Settings::DoNothing, tr("Do Nothing"), Settings::DoNothing); qcbChannelDrag->insertItem(Settings::Move, tr("Move"), Settings::Move); + + QDir userThemeDirectory = Themes::getUserThemesDirectory(); + if (userThemeDirectory.exists()) { + QUrl userThemeDirectoryUrl = QUrl::fromLocalFile(userThemeDirectory.path()); + qlThemesDirectory->setText(tr("Browse").arg(userThemeDirectoryUrl.toString())); + qlThemesDirectory->setOpenExternalLinks(true); + } } QString LookConfig::title() const { @@ -148,17 +155,17 @@ void LookConfig::load(const Settings &r) { theme != themes.end(); ++theme) { - for (ThemeInfo::StylesMap::const_iterator style = theme->styles.begin(); - style != theme->styles.end(); - ++style) { + for (ThemeInfo::StylesMap::const_iterator styleit = theme->styles.begin(); + styleit != theme->styles.end(); + ++styleit) { if (configuredStyle - && configuredStyle->themeName == style->themeName - && configuredStyle->name == style->name) { + && configuredStyle->themeName == styleit->themeName + && configuredStyle->name == styleit->name) { selectedThemeEntry = qcbTheme->count(); } - qcbTheme->addItem(theme->name + QLatin1String(" - ") + style->name, QVariant::fromValue(*style)); + qcbTheme->addItem(theme->name + QLatin1String(" - ") + styleit->name, QVariant::fromValue(*styleit)); } } diff --git a/src/mumble/LookConfig.ui b/src/mumble/LookConfig.ui index 6f843386d89..a4561e86f33 100644 --- a/src/mumble/LookConfig.ui +++ b/src/mumble/LookConfig.ui @@ -6,7 +6,7 @@ 0 0 - 644 + 702 611 @@ -93,6 +93,16 @@ + + + + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + diff --git a/src/mumble/Themes.cpp b/src/mumble/Themes.cpp index 9860e33eb39..9fecb3624d6 100644 --- a/src/mumble/Themes.cpp +++ b/src/mumble/Themes.cpp @@ -124,6 +124,10 @@ ThemeMap Themes::getThemes() { return ThemeInfo::scanDirectories(getSearchDirectories()); } +QDir Themes::getUserThemesDirectory() { + return QDir(g.qdBasePath.absolutePath() + QLatin1String("/Themes")); +} + QVector Themes::getSearchDirectories() { QVector themeSearchDirectories; @@ -132,7 +136,7 @@ QVector Themes::getSearchDirectories() { // Next come themes found in the applications Themes directory themeSearchDirectories << QDir(MumbleApplication::instance()->applicationVersionRootPath() + QLatin1String("/Themes")); // Highest priorty have themes located in the user directory - themeSearchDirectories << QDir(g.qdBasePath.absolutePath() + QLatin1String("/Themes")); + themeSearchDirectories << getUserThemesDirectory(); return themeSearchDirectories; } diff --git a/src/mumble/Themes.h b/src/mumble/Themes.h index 8904db380d8..a6cac468924 100644 --- a/src/mumble/Themes.h +++ b/src/mumble/Themes.h @@ -58,6 +58,9 @@ class Themes { /// Return a theme name to theme map static ThemeMap getThemes(); + /// Returns the per user themes directory + static QDir getUserThemesDirectory(); + private: /// Applies the fallback stylesheet static void applyFallback();