QTfrontend/model/ThemeModel.cpp
changeset 8419 d99f46b676b5
parent 8377 869f80966a77
child 8436 b89aacebb9db
equal deleted inserted replaced
8418:4543cc2049af 8419:d99f46b676b5
    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