controlpanelplugins/themeplugin/src/cpthemeutil.cpp
author hgs
Fri, 25 Jun 2010 17:12:20 +0800
changeset 22 a5692c68d772
child 28 e0b83131558d
child 40 593f946f4fec
permissions -rw-r--r--
201025
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
22
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
 * All rights reserved.
hgs
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0""
hgs
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
 *
hgs
parents:
diff changeset
     9
 * Initial Contributors:
hgs
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
 *
hgs
parents:
diff changeset
    12
 * Contributors:
hgs
parents:
diff changeset
    13
 *
hgs
parents:
diff changeset
    14
 * Description:  
hgs
parents:
diff changeset
    15
 *   
hgs
parents:
diff changeset
    16
 */
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#include "cpthemeinfo.h"
hgs
parents:
diff changeset
    19
#include "cpthemeutil.h"
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
#include <QStringList>
hgs
parents:
diff changeset
    22
#include <QSettings>  
hgs
parents:
diff changeset
    23
#include <QFileInfoList>
hgs
parents:
diff changeset
    24
#include <QDir>
hgs
parents:
diff changeset
    25
#include <QList>
hgs
parents:
diff changeset
    26
hgs
parents:
diff changeset
    27
#include <hbicon.h>
hgs
parents:
diff changeset
    28
#include <hbinstance.h>
hgs
parents:
diff changeset
    29
hgs
parents:
diff changeset
    30
/*!
hgs
parents:
diff changeset
    31
 * This class provides utility function to get Theme information.  
hgs
parents:
diff changeset
    32
 */
hgs
parents:
diff changeset
    33
hgs
parents:
diff changeset
    34
#if defined(Q_OS_SYMBIAN)
hgs
parents:
diff changeset
    35
#include <e32std.h>
hgs
parents:
diff changeset
    36
#include <centralrepository.h>
hgs
parents:
diff changeset
    37
        static const TUid KServerUid3={0x20022E82};
hgs
parents:
diff changeset
    38
        static const TUint32 KDefaultThemeNameKey = 0x2;
hgs
parents:
diff changeset
    39
        static const TUint32 KDefaultThemeRootPathKey = 0x3;
hgs
parents:
diff changeset
    40
hgs
parents:
diff changeset
    41
#endif
hgs
parents:
diff changeset
    42
hgs
parents:
diff changeset
    43
#if !defined(Q_OS_SYMBIAN)
hgs
parents:
diff changeset
    44
    #include <stdio.h>
hgs
parents:
diff changeset
    45
    static const char* KThemePathKey = "HB_THEMES_DIR";  //used for getting default theme.
hgs
parents:
diff changeset
    46
#endif
hgs
parents:
diff changeset
    47
    
hgs
parents:
diff changeset
    48
    
hgs
parents:
diff changeset
    49
#ifdef Q_OS_WIN
hgs
parents:
diff changeset
    50
    static char* _path = NULL;
hgs
parents:
diff changeset
    51
    static size_t _size = 0;
hgs
parents:
diff changeset
    52
    _dupenv_s(&_path, &_size, KThemePathKey);
hgs
parents:
diff changeset
    53
    static QString themeRootPath = QString(_path);
hgs
parents:
diff changeset
    54
    static QString themeRootPathPostfix = QString();
hgs
parents:
diff changeset
    55
    free(_path);
hgs
parents:
diff changeset
    56
#elif defined(Q_OS_SYMBIAN)
hgs
parents:
diff changeset
    57
    static QString themeRootPath = "c:\\resource\\hb";
hgs
parents:
diff changeset
    58
    static QString themeRootPathPostfix = "resource\\hb";
hgs
parents:
diff changeset
    59
#elif defined(Q_OS_MACX)
hgs
parents:
diff changeset
    60
    static QString themeRootPath = QDir::homePath() + '/' + "Library" + QString("hb");
hgs
parents:
diff changeset
    61
    static QString themeRootPathPostfix = QString();
hgs
parents:
diff changeset
    62
#elif defined(Q_OS_UNIX)
hgs
parents:
diff changeset
    63
    static QString themeRootPath = QString(getenv(KThemePathKey));
hgs
parents:
diff changeset
    64
    static QString themeRootPathPostfix = QString();
hgs
parents:
diff changeset
    65
#else
hgs
parents:
diff changeset
    66
    static QString themeRootPath = "c:\\resource\\hb";
hgs
parents:
diff changeset
    67
    static QString themeRootPathPostfix = QString();
hgs
parents:
diff changeset
    68
#endif
hgs
parents:
diff changeset
    69
hgs
parents:
diff changeset
    70
    //Location of theme preview and background icons.
hgs
parents:
diff changeset
    71
    static const QString KPreviewThumbnailNVG = "/scalable/qtg_graf_theme_preview_thumbnail.nvg";
hgs
parents:
diff changeset
    72
    static const QString KPreviewThumbnailSVG = "/scalable/qtg_graf_theme_preview_thumbnail.svg";
hgs
parents:
diff changeset
    73
    
hgs
parents:
diff changeset
    74
    static const QString KPreviewPrtNVG       = "/scalable/qtg_graf_theme_preview_prt.nvg";
hgs
parents:
diff changeset
    75
    static const QString KPreviewLscNVG       = "/scalable/qtg_graf_theme_preview_lsc.nvg";
hgs
parents:
diff changeset
    76
    static const QString KPreviewPrtSVG       = "/scalable/qtg_graf_theme_preview_prt.svg";
hgs
parents:
diff changeset
    77
    static const QString KPreviewLscSVG       = "/scalable/qtg_graf_theme_preview_lsc.svg";
hgs
parents:
diff changeset
    78
   
hgs
parents:
diff changeset
    79
    static const QString KBackgroundPrtNVG    = "/scalable/qtg_graf_screen_bg_prt.nvg";
hgs
parents:
diff changeset
    80
    static const QString KBackgroundLscNVG    = "/scalable/qtg_graf_screen_bg_lsc.nvg";
hgs
parents:
diff changeset
    81
    static const QString KBackgroundPrtSVG    = "/scalable/qtg_graf_screen_bg_prt.svg";
hgs
parents:
diff changeset
    82
    static const QString KBackgroundLscSVG    = "/scalable/qtg_graf_screen_bg_lsc.svg";
hgs
parents:
diff changeset
    83
    
hgs
parents:
diff changeset
    84
    static const QString KBackgroundPrtPNG    = "/pixmap/qtg_graf_screen_bg_prt.png";                     
hgs
parents:
diff changeset
    85
    static const QString KBackgroundLscPNG    = "/pixmap/qtg_graf_screen_bg_lsc.png";
hgs
parents:
diff changeset
    86
    
hgs
parents:
diff changeset
    87
/*!
hgs
parents:
diff changeset
    88
 * Returns a list of paths where themes folder reside.  
hgs
parents:
diff changeset
    89
 */
hgs
parents:
diff changeset
    90
QStringList CpThemeUtil::themePathList()
hgs
parents:
diff changeset
    91
{
hgs
parents:
diff changeset
    92
    static QStringList themesPathList;
hgs
parents:
diff changeset
    93
    
hgs
parents:
diff changeset
    94
    if(themesPathList.isEmpty()) {
hgs
parents:
diff changeset
    95
hgs
parents:
diff changeset
    96
#if defined(Q_OS_SYMBIAN)
hgs
parents:
diff changeset
    97
        QFileInfoList driveInfoList = QDir::drives();
hgs
parents:
diff changeset
    98
        foreach (const QFileInfo &driveInfo, driveInfoList) {
hgs
parents:
diff changeset
    99
            const QString themePath = driveInfo.absolutePath() + themeRootPathPostfix;
hgs
parents:
diff changeset
   100
            if(QDir(themePath).exists())
hgs
parents:
diff changeset
   101
                themesPathList << themePath;
hgs
parents:
diff changeset
   102
        }
hgs
parents:
diff changeset
   103
#else
hgs
parents:
diff changeset
   104
        themesPathList << themeRootPath;
hgs
parents:
diff changeset
   105
#endif
hgs
parents:
diff changeset
   106
    }
hgs
parents:
diff changeset
   107
    return themesPathList;
hgs
parents:
diff changeset
   108
}
hgs
parents:
diff changeset
   109
hgs
parents:
diff changeset
   110
/*!
hgs
parents:
diff changeset
   111
 * Given the theme name, it returns the absolute path of the theme.
hgs
parents:
diff changeset
   112
 */
hgs
parents:
diff changeset
   113
QString CpThemeUtil::themePath(const QString& themeName)
hgs
parents:
diff changeset
   114
{
hgs
parents:
diff changeset
   115
    QString themePath = "";
hgs
parents:
diff changeset
   116
    QStringList themesPathList = themePathList();
hgs
parents:
diff changeset
   117
    foreach (const QString &path, themesPathList) {
hgs
parents:
diff changeset
   118
       QString tmpPath = path + "/themes/icons/" + themeName;
hgs
parents:
diff changeset
   119
       if(QDir(tmpPath).exists()) {
hgs
parents:
diff changeset
   120
           themePath = tmpPath;
hgs
parents:
diff changeset
   121
           break;
hgs
parents:
diff changeset
   122
       }
hgs
parents:
diff changeset
   123
    }
hgs
parents:
diff changeset
   124
    return themePath;
hgs
parents:
diff changeset
   125
}
hgs
parents:
diff changeset
   126
  
hgs
parents:
diff changeset
   127
/*
hgs
parents:
diff changeset
   128
 * Builds a CpThemeInfo object given theme path and theme name.  It creates the name and 
hgs
parents:
diff changeset
   129
 * preview icons for the object.  Creates a new CpThemeInfo objects. Caller takes ownership.
hgs
parents:
diff changeset
   130
 * Returns NULL if can't build the object.
hgs
parents:
diff changeset
   131
 */
hgs
parents:
diff changeset
   132
CpThemeInfo* CpThemeUtil::buildThemeInfo(const QString& themePath, const QString& themeName)
hgs
parents:
diff changeset
   133
{
hgs
parents:
diff changeset
   134
    CpThemeInfo *themeInfo = new CpThemeInfo();
hgs
parents:
diff changeset
   135
    QString iconPath;
hgs
parents:
diff changeset
   136
    
hgs
parents:
diff changeset
   137
    QString previewPathPrt;
hgs
parents:
diff changeset
   138
    QString previewPathLsc;
hgs
parents:
diff changeset
   139
    QString name = themeName;
hgs
parents:
diff changeset
   140
    QString hidden = "";
hgs
parents:
diff changeset
   141
    
hgs
parents:
diff changeset
   142
    //first look into the index.theme file to get theme information.
hgs
parents:
diff changeset
   143
   
hgs
parents:
diff changeset
   144
    if(QFileInfo(themePath + "/index.theme").exists()) {
hgs
parents:
diff changeset
   145
        QSettings iniSetting(themePath + "/index.theme", QSettings::IniFormat);
hgs
parents:
diff changeset
   146
        iniSetting.beginGroup("Icon Theme");
hgs
parents:
diff changeset
   147
        name = iniSetting.value("Name").toString();
hgs
parents:
diff changeset
   148
        hidden = iniSetting.value("Hidden").toString();
hgs
parents:
diff changeset
   149
        iconPath = iniSetting.value("PreviewThumbnailPath").toString();
hgs
parents:
diff changeset
   150
        previewPathPrt = iniSetting.value("PreviewIconPath_prt").toString();
hgs
parents:
diff changeset
   151
        previewPathLsc = iniSetting.value("PreviewIconPath_lsc").toString();
hgs
parents:
diff changeset
   152
        iniSetting.endGroup();
hgs
parents:
diff changeset
   153
       
hgs
parents:
diff changeset
   154
    }
hgs
parents:
diff changeset
   155
                       
hgs
parents:
diff changeset
   156
    if(name.isEmpty() || (hidden == "true") ||( hidden == "")) {
hgs
parents:
diff changeset
   157
        return NULL;
hgs
parents:
diff changeset
   158
    }
hgs
parents:
diff changeset
   159
   
hgs
parents:
diff changeset
   160
    themeInfo->setName(name);
hgs
parents:
diff changeset
   161
    themeInfo->setItemType(CpThemeInfo::ThemeListItemType_default);
hgs
parents:
diff changeset
   162
          
hgs
parents:
diff changeset
   163
    //Get the icons. Logic is as follow:
hgs
parents:
diff changeset
   164
    /* 1. If the icon path is in index.theme and the icon exist, use it.
hgs
parents:
diff changeset
   165
     * 2. Otherwise look for the icon in the theme folder.
hgs
parents:
diff changeset
   166
     * 2. If preview icon doesn't exist, use background icon.
hgs
parents:
diff changeset
   167
     * 3. If no icon exist (background or preview),use default theme icon.
hgs
parents:
diff changeset
   168
     */
hgs
parents:
diff changeset
   169
    if(iconPath.isEmpty() || !QFileInfo(themePath + iconPath).exists()){
hgs
parents:
diff changeset
   170
    //Set thumbnail
hgs
parents:
diff changeset
   171
        if(QFileInfo(themePath + KPreviewThumbnailNVG).exists()){
hgs
parents:
diff changeset
   172
            themeInfo->setIcon(HbIcon(themePath + KPreviewThumbnailNVG));
hgs
parents:
diff changeset
   173
        }else if(QFileInfo(themePath + KPreviewThumbnailSVG).exists()){
hgs
parents:
diff changeset
   174
            themeInfo->setIcon(HbIcon(themePath + KPreviewThumbnailSVG));
hgs
parents:
diff changeset
   175
        }else if(QFileInfo(themePath + KBackgroundPrtNVG).exists()){
hgs
parents:
diff changeset
   176
            themeInfo->setIcon(HbIcon(themePath + KBackgroundPrtNVG));
hgs
parents:
diff changeset
   177
        } else if(QFileInfo(themePath + KBackgroundPrtSVG).exists()){
hgs
parents:
diff changeset
   178
            themeInfo->setIcon(HbIcon(themePath + KBackgroundPrtSVG));
hgs
parents:
diff changeset
   179
        } else if(QFileInfo(themePath + KBackgroundPrtPNG).exists()){
hgs
parents:
diff changeset
   180
            themeInfo->setIcon(HbIcon(themePath + KBackgroundPrtPNG)); 
hgs
parents:
diff changeset
   181
        }else{
hgs
parents:
diff changeset
   182
            themeInfo->setIcon(HbIcon(defaultTheme()->icon()));
hgs
parents:
diff changeset
   183
        }
hgs
parents:
diff changeset
   184
hgs
parents:
diff changeset
   185
    } else {
hgs
parents:
diff changeset
   186
        themeInfo->setIcon(HbIcon(themePath + iconPath));
hgs
parents:
diff changeset
   187
    }
hgs
parents:
diff changeset
   188
          
hgs
parents:
diff changeset
   189
    //Portrait preview
hgs
parents:
diff changeset
   190
          
hgs
parents:
diff changeset
   191
    if(previewPathPrt.isEmpty() || !QFileInfo(themePath + previewPathPrt).exists()) {
hgs
parents:
diff changeset
   192
          
hgs
parents:
diff changeset
   193
        if(QFileInfo(themePath + KPreviewPrtNVG).exists()){
hgs
parents:
diff changeset
   194
            themeInfo->setPortraitPreviewIcon(HbIcon(themePath + KPreviewPrtNVG));
hgs
parents:
diff changeset
   195
        }else if(QFileInfo(themePath + KPreviewPrtSVG).exists()){
hgs
parents:
diff changeset
   196
            themeInfo->setPortraitPreviewIcon(HbIcon(themePath + KPreviewPrtSVG));
hgs
parents:
diff changeset
   197
        }else if(QFileInfo(themePath + KBackgroundPrtNVG).exists()){
hgs
parents:
diff changeset
   198
            themeInfo->setPortraitPreviewIcon(HbIcon(themePath + KBackgroundPrtNVG));
hgs
parents:
diff changeset
   199
        } else if(QFileInfo(themePath + KBackgroundPrtSVG).exists()){
hgs
parents:
diff changeset
   200
            themeInfo->setPortraitPreviewIcon(HbIcon(themePath + KBackgroundPrtSVG));
hgs
parents:
diff changeset
   201
        } else if(QFileInfo(themePath + KBackgroundPrtPNG).exists()){
hgs
parents:
diff changeset
   202
            themeInfo->setPortraitPreviewIcon(HbIcon(themePath + KBackgroundPrtPNG));
hgs
parents:
diff changeset
   203
        } else{
hgs
parents:
diff changeset
   204
            themeInfo->setPortraitPreviewIcon(HbIcon(defaultTheme()->icon()));
hgs
parents:
diff changeset
   205
        }
hgs
parents:
diff changeset
   206
    }
hgs
parents:
diff changeset
   207
    else {
hgs
parents:
diff changeset
   208
        themeInfo->setPortraitPreviewIcon(HbIcon(themePath + previewPathPrt));
hgs
parents:
diff changeset
   209
    }
hgs
parents:
diff changeset
   210
          
hgs
parents:
diff changeset
   211
    //Landscape preview
hgs
parents:
diff changeset
   212
          
hgs
parents:
diff changeset
   213
    if(previewPathLsc.isEmpty() || !QFileInfo(themePath + previewPathLsc).exists()) {
hgs
parents:
diff changeset
   214
        if(QFileInfo(themePath + KPreviewLscNVG).exists()){
hgs
parents:
diff changeset
   215
            themeInfo->setLandscapePreviewIcon(HbIcon(themePath + KPreviewLscNVG));
hgs
parents:
diff changeset
   216
        }else if(QFileInfo(themePath + KPreviewLscSVG).exists()){
hgs
parents:
diff changeset
   217
            themeInfo->setLandscapePreviewIcon(HbIcon(themePath + KPreviewLscSVG));
hgs
parents:
diff changeset
   218
        }else if(QFileInfo(themePath + KBackgroundLscNVG).exists()){
hgs
parents:
diff changeset
   219
            themeInfo->setLandscapePreviewIcon(HbIcon(themePath + KBackgroundLscNVG));
hgs
parents:
diff changeset
   220
        } else if(QFileInfo(themePath + KBackgroundLscSVG).exists()){
hgs
parents:
diff changeset
   221
            themeInfo->setLandscapePreviewIcon(HbIcon(themePath + KBackgroundLscSVG));
hgs
parents:
diff changeset
   222
        } else if(QFileInfo(themePath + KBackgroundLscPNG).exists()){
hgs
parents:
diff changeset
   223
            themeInfo->setLandscapePreviewIcon(HbIcon(themePath + KBackgroundLscPNG));
hgs
parents:
diff changeset
   224
        } else{
hgs
parents:
diff changeset
   225
            themeInfo->setLandscapePreviewIcon(HbIcon(defaultTheme()->icon()));
hgs
parents:
diff changeset
   226
        }
hgs
parents:
diff changeset
   227
    }
hgs
parents:
diff changeset
   228
    else {
hgs
parents:
diff changeset
   229
        themeInfo->setLandscapePreviewIcon(HbIcon(themePath + previewPathLsc));
hgs
parents:
diff changeset
   230
    }
hgs
parents:
diff changeset
   231
    return themeInfo;
hgs
parents:
diff changeset
   232
hgs
parents:
diff changeset
   233
}
hgs
parents:
diff changeset
   234
hgs
parents:
diff changeset
   235
/*! Creates a list of CpThemeInfo objects representing theme information.
hgs
parents:
diff changeset
   236
 *  Caller should take ownership of the list.
hgs
parents:
diff changeset
   237
 */
hgs
parents:
diff changeset
   238
QList<CpThemeInfo> CpThemeUtil::buildThemeList()
hgs
parents:
diff changeset
   239
{
hgs
parents:
diff changeset
   240
    QList<CpThemeInfo> themeList; 
hgs
parents:
diff changeset
   241
  
hgs
parents:
diff changeset
   242
    QStringList mThemesPathList = themePathList();
hgs
parents:
diff changeset
   243
    
hgs
parents:
diff changeset
   244
    foreach (const QString &path, mThemesPathList) {
hgs
parents:
diff changeset
   245
        QDir themeDir;
hgs
parents:
diff changeset
   246
        themeDir.setPath( path ) ;
hgs
parents:
diff changeset
   247
        QStringList iconthemeslist;
hgs
parents:
diff changeset
   248
        QStringList list = themeDir.entryList(QDir::AllDirs|QDir::NoDotAndDotDot,QDir::Name);
hgs
parents:
diff changeset
   249
        CpThemeInfo* themeInfo;
hgs
parents:
diff changeset
   250
hgs
parents:
diff changeset
   251
        if(list.contains("themes", Qt::CaseSensitive )) {
hgs
parents:
diff changeset
   252
            QDir root(themeDir.path());
hgs
parents:
diff changeset
   253
            themeDir.setPath(root.path() + "/themes/icons/") ;
hgs
parents:
diff changeset
   254
            iconthemeslist = themeDir.entryList(QDir::AllDirs|QDir::NoDotAndDotDot,QDir::Name);
hgs
parents:
diff changeset
   255
            foreach(QString themefolder, iconthemeslist) {
hgs
parents:
diff changeset
   256
                QDir iconThemePath(root.path() + "/themes/icons/" + themefolder);
hgs
parents:
diff changeset
   257
                if(iconThemePath.exists("index.theme") &&
hgs
parents:
diff changeset
   258
                   (iconThemePath.exists("scalable") || iconThemePath.exists("pixmap") )) {
hgs
parents:
diff changeset
   259
hgs
parents:
diff changeset
   260
                    themeInfo = buildThemeInfo(iconThemePath.path(), themefolder);
hgs
parents:
diff changeset
   261
                    if(themeInfo && !themeInfo->name().isEmpty()) {
hgs
parents:
diff changeset
   262
                        themeList.append(*themeInfo);
hgs
parents:
diff changeset
   263
                    }
hgs
parents:
diff changeset
   264
                } 
hgs
parents:
diff changeset
   265
            }
hgs
parents:
diff changeset
   266
        }
hgs
parents:
diff changeset
   267
    }
hgs
parents:
diff changeset
   268
    qSort( themeList );
hgs
parents:
diff changeset
   269
    return themeList;
hgs
parents:
diff changeset
   270
}
hgs
parents:
diff changeset
   271
hgs
parents:
diff changeset
   272
/*!
hgs
parents:
diff changeset
   273
 * Returns the default theme information. 
hgs
parents:
diff changeset
   274
 */
hgs
parents:
diff changeset
   275
CpThemeInfo* CpThemeUtil::defaultTheme()
hgs
parents:
diff changeset
   276
{
hgs
parents:
diff changeset
   277
    //static because default theme doesn't change.
hgs
parents:
diff changeset
   278
    static CpThemeInfo *defaultTheme = new CpThemeInfo();
hgs
parents:
diff changeset
   279
    QString defaultThemeName;
hgs
parents:
diff changeset
   280
    QString defaultThemeRootDir;
hgs
parents:
diff changeset
   281
    if(defaultTheme->name().isEmpty()) {
hgs
parents:
diff changeset
   282
       
hgs
parents:
diff changeset
   283
hgs
parents:
diff changeset
   284
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   285
        CRepository *repository = 0;
hgs
parents:
diff changeset
   286
        TRAP_IGNORE(repository = CRepository::NewL(KServerUid3));
hgs
parents:
diff changeset
   287
        if (repository) {
hgs
parents:
diff changeset
   288
            TBuf<256> value;
hgs
parents:
diff changeset
   289
            if (KErrNone == repository->Get((TUint32)KDefaultThemeNameKey, value)) {
hgs
parents:
diff changeset
   290
                QString qvalue((QChar*)value.Ptr(), value.Length());
hgs
parents:
diff changeset
   291
                defaultThemeName = qvalue.trimmed();
hgs
parents:
diff changeset
   292
            }
hgs
parents:
diff changeset
   293
            value.Zero();
hgs
parents:
diff changeset
   294
            if (KErrNone == repository->Get((TUint32)KDefaultThemeRootPathKey, value)) {
hgs
parents:
diff changeset
   295
                QString qvalue((QChar*)value.Ptr(), value.Length());
hgs
parents:
diff changeset
   296
                defaultThemeRootDir = qvalue.trimmed();
hgs
parents:
diff changeset
   297
            }
hgs
parents:
diff changeset
   298
            else {
hgs
parents:
diff changeset
   299
                defaultThemeRootDir = themePath(defaultThemeName);
hgs
parents:
diff changeset
   300
            }
hgs
parents:
diff changeset
   301
            value.Zero();
hgs
parents:
diff changeset
   302
            delete repository;
hgs
parents:
diff changeset
   303
        }
hgs
parents:
diff changeset
   304
          
hgs
parents:
diff changeset
   305
#endif
hgs
parents:
diff changeset
   306
        defaultTheme = buildThemeInfo(defaultThemeRootDir, defaultThemeName);
hgs
parents:
diff changeset
   307
hgs
parents:
diff changeset
   308
    }
hgs
parents:
diff changeset
   309
    return defaultTheme;
hgs
parents:
diff changeset
   310
}
hgs
parents:
diff changeset
   311