GameListModel: update icons when theme changes

This commit is contained in:
Michael Maltese 2017-05-31 16:49:32 -07:00
parent 5a4ee87d6a
commit 9bdbd02efc
3 changed files with 19 additions and 2 deletions

View File

@ -4,6 +4,7 @@
#include "DolphinQt2/GameList/GameListModel.h"
#include "DolphinQt2/Resources.h"
#include "DolphinQt2/Settings.h"
const QSize GAMECUBE_BANNER_SIZE(96, 32);
@ -13,6 +14,13 @@ GameListModel::GameListModel(QObject* parent) : QAbstractTableModel(parent)
connect(&m_tracker, &GameTracker::GameRemoved, this, &GameListModel::RemoveGame);
connect(this, &GameListModel::DirectoryAdded, &m_tracker, &GameTracker::AddDirectory);
connect(this, &GameListModel::DirectoryRemoved, &m_tracker, &GameTracker::RemoveDirectory);
connect(&Settings::Instance(), &Settings::ThemeChanged, [this] {
// Tell the view to repaint. The signal 'dataChanged' also seems like it would work here, but
// unfortunately it won't cause a repaint until the view is focused.
emit layoutAboutToBeChanged();
emit layoutChanged();
});
}
QVariant GameListModel::data(const QModelIndex& index, int role) const

View File

@ -82,12 +82,20 @@ void Resources::Init()
{
m_countries.append(GetScaledPixmap(country));
}
for (int stars = 0; stars <= 5; stars++)
m_ratings.append(GetScaledThemePixmap("rating" + std::to_string(stars)));
m_misc.append(GetScaledPixmap("nobanner"));
m_misc.append(GetScaledPixmap("dolphin_logo"));
m_misc.append(GetScaledPixmap("Dolphin"));
QObject::connect(&Settings::Instance(), &Settings::ThemeChanged, Resources::InitThemeIcons);
InitThemeIcons();
}
void Resources::InitThemeIcons()
{
m_ratings = {GetScaledThemePixmap("rating0"), GetScaledThemePixmap("rating1"),
GetScaledThemePixmap("rating2"), GetScaledThemePixmap("rating3"),
GetScaledThemePixmap("rating4"), GetScaledThemePixmap("rating5")};
}
QPixmap Resources::GetPlatform(int platform)

View File

@ -33,6 +33,7 @@ public:
private:
Resources() {}
static void InitThemeIcons();
static QIcon GetIcon(const QString& name, const QString& dir);
static QPixmap GetPixmap(const QString& name, const QString& dir);