equal
deleted
inserted
replaced
19 /** |
19 /** |
20 * @file |
20 * @file |
21 * @brief ThemeModel class implementation |
21 * @brief ThemeModel class implementation |
22 */ |
22 */ |
23 |
23 |
|
24 #include "physfs.h" |
24 #include "ThemeModel.h" |
25 #include "ThemeModel.h" |
25 |
26 |
26 ThemeModel::ThemeModel(QObject *parent) : |
27 ThemeModel::ThemeModel(QObject *parent) : |
27 QAbstractListModel(parent) |
28 QAbstractListModel(parent) |
28 { |
29 { |
47 } |
48 } |
48 |
49 |
49 |
50 |
50 void ThemeModel::loadThemes() |
51 void ThemeModel::loadThemes() |
51 { |
52 { |
|
53 const QString appDir = QString(PHYSFS_getBaseDir()); |
|
54 |
52 beginResetModel(); |
55 beginResetModel(); |
53 |
|
54 |
56 |
55 DataManager & datamgr = DataManager::instance(); |
57 DataManager & datamgr = DataManager::instance(); |
56 |
58 |
57 QStringList themes = |
59 QStringList themes = |
58 datamgr.entryList("Themes", QDir::AllDirs | QDir::NoDotAndDotDot); |
60 datamgr.entryList("Themes", QDir::AllDirs | QDir::NoDotAndDotDot); |
70 |
72 |
71 if (!QFile::exists(iconpath)) |
73 if (!QFile::exists(iconpath)) |
72 continue; |
74 continue; |
73 |
75 |
74 QMap<int, QVariant> dataset; |
76 QMap<int, QVariant> dataset; |
|
77 |
|
78 // detect if theme is dlc |
|
79 QString themeDir = PHYSFS_getRealDir(QString("Themes/%1/icon.png").arg(theme).toLocal8Bit().data()); |
|
80 dataset.insert(Qt::UserRole + 2, !themeDir.startsWith(appDir)); |
75 |
81 |
76 // set icon path |
82 // set icon path |
77 dataset.insert(Qt::UserRole + 1, iconpath); |
83 dataset.insert(Qt::UserRole + 1, iconpath); |
78 |
84 |
79 // set name |
85 // set name |
94 } |
100 } |
95 |
101 |
96 |
102 |
97 endResetModel(); |
103 endResetModel(); |
98 } |
104 } |
99 |
|
100 |
|
101 |
|
102 |
|