controlpanelplugins/themeplugin/src/cpthemelistmodel.cpp
changeset 28 e0b83131558d
parent 26 808caa51b78b
child 29 313976a11e23
equal deleted inserted replaced
26:808caa51b78b 28:e0b83131558d
    16  */
    16  */
    17 
    17 
    18 #include <QDir>
    18 #include <QDir>
    19 #include <QStringList>
    19 #include <QStringList>
    20 #include <QFileSystemWatcher>
    20 #include <QFileSystemWatcher>
       
    21 #include <QPair>
    21 
    22 
    22 #include <HbIcon>
    23 #include <HbIcon>
    23 
    24 
    24 #include "cpthemelistmodel.h"
    25 #include "cpthemelistmodel.h"
    25 #include "cpthemeinfo.h"
    26 #include "cpthemeinfo.h"
    43     //Build theme list
    44     //Build theme list
    44     mThemeList = CpThemeUtil::buildThemeList();
    45     mThemeList = CpThemeUtil::buildThemeList();
    45     
    46     
    46     //Look into theme paths and add a file watcher for it
    47     //Look into theme paths and add a file watcher for it
    47     //to get notified when themes are added.
    48     //to get notified when themes are added.
    48     QStringList themesPathList = CpThemeUtil::themePathList();
    49     QStringList themePaths = CpThemeUtil::themeDirectories(mThemeList);
    49     foreach (const QString &path, themesPathList) {
    50     if(!themePaths.empty()) {
    50         QDir themeDir;
    51         mFileWatcher->addPaths(themePaths);
    51         themeDir.setPath( path ) ;
       
    52         QStringList list = themeDir.entryList(QDir::AllDirs|QDir::NoDotAndDotDot, QDir::Name);
       
    53         if(list.contains("themes", Qt::CaseSensitive )) {
       
    54             mFileWatcher->addPath(themeDir.path() + "/themes/");
       
    55         }
       
    56     }
    52     }
    57     connect(mFileWatcher, SIGNAL(directoryChanged(const QString&)),
    53    
       
    54     connect(mFileWatcher, SIGNAL(directoryChanged(QString&)),
    58            this, SLOT(themeListChanged()));
    55            this, SLOT(themeListChanged()));
    59        
    56     
    60     // data for the list which appears after the themes:
    57     // data for the list which appears after the themes:
    61     CpThemeInfo fetchFromStore;
    58     CpThemeInfo fetchFromStore;
    62     fetchFromStore.setName(hbTrId("txt_cp_list_get_more_tones"));
    59     fetchFromStore.setName(hbTrId("txt_cp_list_get_more_tones"));
    63     fetchFromStore.setItemType(CpThemeInfo::ThemeListItemType_URL);
    60     fetchFromStore.setItemType(CpThemeInfo::ThemeListItemType_URL);
    64     fetchFromStore.setItemData(QString("http://lr.ovi.mobi/store/themes"));
    61     fetchFromStore.setItemData(QString("http://lr.ovi.mobi/store/themes"));