Skip to content
Permalink
Browse files
Merge pull request #8786 from JosJuice/user-style-not-path
DolphinQt: Store name of user style, not path
  • Loading branch information
leoetlino committed May 3, 2020
2 parents 90ba73c + aab694e commit 0ab9475
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 11 deletions.
@@ -7,6 +7,7 @@
#include <QApplication>
#include <QDir>
#include <QFile>
#include <QFileInfo>
#include <QSize>

#include "AudioCommon/AudioCommon.h"
@@ -72,25 +73,30 @@ void Settings::SetThemeName(const QString& theme_name)

QString Settings::GetCurrentUserStyle() const
{
return GetQSettings().value(QStringLiteral("userstyle/path"), false).toString();
if (GetQSettings().contains(QStringLiteral("userstyle/name")))
return GetQSettings().value(QStringLiteral("userstyle/name")).toString();

// Migration code for the old way of storing this setting
return QFileInfo(GetQSettings().value(QStringLiteral("userstyle/path")).toString()).fileName();
}

void Settings::SetCurrentUserStyle(const QString& stylesheet_path)
void Settings::SetCurrentUserStyle(const QString& stylesheet_name)
{
QString stylesheet_contents;

if (!stylesheet_path.isEmpty() && AreUserStylesEnabled())
if (!stylesheet_name.isEmpty() && AreUserStylesEnabled())
{
// Load custom user stylesheet
QFile stylesheet(stylesheet_path);
QDir directory = QDir(QString::fromStdString(File::GetUserPath(D_STYLES_IDX)));
QFile stylesheet(directory.filePath(stylesheet_name));

if (stylesheet.open(QFile::ReadOnly))
stylesheet_contents = QString::fromUtf8(stylesheet.readAll().data());
}

qApp->setStyleSheet(stylesheet_contents);

GetQSettings().setValue(QStringLiteral("userstyle/path"), stylesheet_path);
GetQSettings().setValue(QStringLiteral("userstyle/name"), stylesheet_name);
}

bool Settings::AreUserStylesEnabled() const
@@ -47,7 +47,7 @@ class Settings final : public QObject

// UI
void SetThemeName(const QString& theme_name);
void SetCurrentUserStyle(const QString& stylesheet_path);
void SetCurrentUserStyle(const QString& stylesheet_name);
QString GetCurrentUserStyle() const;

void SetUserStylesEnabled(bool enabled);
@@ -136,10 +136,8 @@ void InterfacePane::CreateUI()

for (const std::string& path : userstyle_search_results)
{
std::string name;
SplitPath(path, nullptr, &name, nullptr);
const QString qt_name = QString::fromStdString(name);
m_combobox_userstyle->addItem(qt_name, QString::fromStdString(path));
const QFileInfo file_info(QString::fromStdString(path));
m_combobox_userstyle->addItem(file_info.completeBaseName(), file_info.fileName());
}

// Checkboxes
@@ -216,7 +214,7 @@ void InterfacePane::LoadConfig()
m_combobox_theme->findText(QString::fromStdString(SConfig::GetInstance().theme_name)));

const QString userstyle = Settings::Instance().GetCurrentUserStyle();
const int index = m_combobox_userstyle->findText(QFileInfo(userstyle).baseName());
const int index = m_combobox_userstyle->findData(QFileInfo(userstyle).fileName());

if (index > 0)
m_combobox_userstyle->setCurrentIndex(index);

0 comments on commit 0ab9475

Please sign in to comment.