SettingsWindow: update icons when theme changes

This commit is contained in:
Michael Maltese
2017-06-05 00:15:15 -07:00
parent d6db515165
commit 6b084e21dc
2 changed files with 12 additions and 6 deletions

View File

@ -11,6 +11,7 @@
#include <QVBoxLayout> #include <QVBoxLayout>
#include "DolphinQt2/Config/SettingsWindow.h" #include "DolphinQt2/Config/SettingsWindow.h"
#include "DolphinQt2/Resources.h"
#include "DolphinQt2/Settings.h" #include "DolphinQt2/Settings.h"
#include "DolphinQt2/Settings/GeneralPane.h" #include "DolphinQt2/Settings/GeneralPane.h"
#include "DolphinQt2/Settings/InterfacePane.h" #include "DolphinQt2/Settings/InterfacePane.h"
@ -75,15 +76,18 @@ void SettingsWindow::MakeUnfinishedWarning()
m_warning_group->setLayout(m_warning_group_layout); m_warning_group->setLayout(m_warning_group_layout);
} }
void SettingsWindow::AddCategoryToList(const QString& title, const QString& icon) void SettingsWindow::AddCategoryToList(const QString& title, const std::string& icon_name)
{ {
QString dir = Settings::Instance().GetThemeDir(); QString dir = Settings::Instance().GetThemeDir();
QListWidgetItem* button = new QListWidgetItem(); QListWidgetItem* button = new QListWidgetItem();
button->setIcon(QIcon(dir.append(icon)));
button->setText(title); button->setText(title);
button->setTextAlignment(Qt::AlignVCenter); button->setTextAlignment(Qt::AlignVCenter);
button->setSizeHint(QSize(28, 28)); button->setSizeHint(QSize(28, 28));
button->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); button->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
auto set_icon = [=] { button->setIcon(Resources::GetScaledThemeIcon(icon_name)); };
QObject::connect(&Settings::Instance(), &Settings::ThemeChanged, set_icon);
set_icon();
m_categories->addItem(button); m_categories->addItem(button);
} }
@ -95,9 +99,9 @@ void SettingsWindow::MakeCategoryList()
m_categories->setMovement(QListView::Static); m_categories->setMovement(QListView::Static);
m_categories->setSpacing(0); m_categories->setSpacing(0);
AddCategoryToList(tr("General"), QStringLiteral("config.png")); AddCategoryToList(tr("General"), "config");
AddCategoryToList(tr("Interface"), QStringLiteral("browse.png")); AddCategoryToList(tr("Interface"), "browse");
AddCategoryToList(tr("Paths"), QStringLiteral("browse.png")); AddCategoryToList(tr("Paths"), "browse");
connect(m_categories, &QListWidget::currentItemChanged, this, &SettingsWindow::changePage); connect(m_categories, &QListWidget::currentItemChanged, this, &SettingsWindow::changePage);
} }

View File

@ -4,6 +4,8 @@
#pragma once #pragma once
#include <string>
#include <QDialog> #include <QDialog>
class QGroupBox; class QGroupBox;
@ -23,7 +25,7 @@ public slots:
private: private:
void MakeCategoryList(); void MakeCategoryList();
void MakeUnfinishedWarning(); void MakeUnfinishedWarning();
void AddCategoryToList(const QString& title, const QString& icon); void AddCategoryToList(const QString& title, const std::string& icon_name);
void SetupSettingsWidget(); void SetupSettingsWidget();
QStackedWidget* m_settings_outer; QStackedWidget* m_settings_outer;
QListWidget* m_categories; QListWidget* m_categories;