diff -r 313976a11e23 -r 0cfa53de576f controlpanelplugins/themeplugin/src/cpthemeutil.cpp --- a/controlpanelplugins/themeplugin/src/cpthemeutil.cpp Thu Aug 05 11:28:29 2010 +0800 +++ b/controlpanelplugins/themeplugin/src/cpthemeutil.cpp Tue Aug 24 10:56:32 2010 +0800 @@ -45,18 +45,11 @@ static const QString KPreviewThumbnailNVG = "/scalable/qtg_graf_theme_preview_thumbnail.nvg"; static const QString KPreviewThumbnailSVG = "/scalable/qtg_graf_theme_preview_thumbnail.svg"; - static const QString KPreviewPrtNVG = "/scalable/qtg_graf_theme_preview_prt.nvg"; - static const QString KPreviewLscNVG = "/scalable/qtg_graf_theme_preview_lsc.nvg"; - static const QString KPreviewPrtSVG = "/scalable/qtg_graf_theme_preview_prt.svg"; - static const QString KPreviewLscSVG = "/scalable/qtg_graf_theme_preview_lsc.svg"; - static const QString KBackgroundPrtNVG = "/scalable/qtg_graf_screen_bg_prt.nvg"; static const QString KBackgroundLscNVG = "/scalable/qtg_graf_screen_bg_lsc.nvg"; static const QString KBackgroundPrtSVG = "/scalable/qtg_graf_screen_bg_prt.svg"; static const QString KBackgroundLscSVG = "/scalable/qtg_graf_screen_bg_lsc.svg"; - static const QString KBackgroundPrtPNG = "/pixmap/qtg_graf_screen_bg_prt.png"; - static const QString KBackgroundLscPNG = "/pixmap/qtg_graf_screen_bg_lsc.png"; @@ -71,8 +64,6 @@ CpThemeInfo *themeInfo = new CpThemeInfo(); QString iconPath; - QString previewPathPrt; - QString previewPathLsc; QString name = themeName; QString hidden = ""; @@ -84,8 +75,6 @@ name = iniSetting.value("Name").toString(); hidden = iniSetting.value("Hidden").toString(); iconPath = iniSetting.value("PreviewThumbnailPath").toString(); - previewPathPrt = iniSetting.value("PreviewIconPath_prt").toString(); - previewPathLsc = iniSetting.value("PreviewIconPath_lsc").toString(); iniSetting.endGroup(); } @@ -105,78 +94,50 @@ * 3. If no icon exist (background or preview),use default theme icon. */ if(iconPath.isEmpty() || !QFileInfo(themePath + iconPath).exists()){ - //Set thumbnail - if(QFileInfo(themePath + KPreviewThumbnailNVG).exists()){ - themeInfo->setIcon(HbIcon(themePath + KPreviewThumbnailNVG)); - }else if(QFileInfo(themePath + KPreviewThumbnailSVG).exists()){ - themeInfo->setIcon(HbIcon(themePath + KPreviewThumbnailSVG)); - }else if(QFileInfo(themePath + KBackgroundPrtNVG).exists()){ - themeInfo->setIcon(HbIcon(themePath + KBackgroundPrtNVG)); - } else if(QFileInfo(themePath + KBackgroundPrtSVG).exists()){ - themeInfo->setIcon(HbIcon(themePath + KBackgroundPrtSVG)); - } else if(QFileInfo(themePath + KBackgroundPrtPNG).exists()){ - themeInfo->setIcon(HbIcon(themePath + KBackgroundPrtPNG)); - }else{ - themeInfo->setIcon(HbIcon(defaultTheme()->icon())); + //Set thumbnail + HbIcon themeIcon = getPreviewIcon(themePath); + if(themeIcon.isNull()){ + QString defaultThemePath = defaultTheme(); + if(!defaultThemePath.isEmpty()) { + themeIcon = getPreviewIcon(defaultThemePath); + } } - + themeInfo->setIcon(themeIcon); } else { themeInfo->setIcon(HbIcon(themePath + iconPath)); } - //Portrait preview - - if(previewPathPrt.isEmpty() || !QFileInfo(themePath + previewPathPrt).exists()) { - - if(QFileInfo(themePath + KPreviewPrtNVG).exists()){ - themeInfo->setPortraitPreviewIcon(HbIcon(themePath + KPreviewPrtNVG)); - }else if(QFileInfo(themePath + KPreviewPrtSVG).exists()){ - themeInfo->setPortraitPreviewIcon(HbIcon(themePath + KPreviewPrtSVG)); - }else if(QFileInfo(themePath + KBackgroundPrtNVG).exists()){ - themeInfo->setPortraitPreviewIcon(HbIcon(themePath + KBackgroundPrtNVG)); - } else if(QFileInfo(themePath + KBackgroundPrtSVG).exists()){ - themeInfo->setPortraitPreviewIcon(HbIcon(themePath + KBackgroundPrtSVG)); - } else if(QFileInfo(themePath + KBackgroundPrtPNG).exists()){ - themeInfo->setPortraitPreviewIcon(HbIcon(themePath + KBackgroundPrtPNG)); - } else{ - themeInfo->setPortraitPreviewIcon(HbIcon(defaultTheme()->icon())); - } - } - else { - themeInfo->setPortraitPreviewIcon(HbIcon(themePath + previewPathPrt)); - } - - //Landscape preview - - if(previewPathLsc.isEmpty() || !QFileInfo(themePath + previewPathLsc).exists()) { - if(QFileInfo(themePath + KPreviewLscNVG).exists()){ - themeInfo->setLandscapePreviewIcon(HbIcon(themePath + KPreviewLscNVG)); - }else if(QFileInfo(themePath + KPreviewLscSVG).exists()){ - themeInfo->setLandscapePreviewIcon(HbIcon(themePath + KPreviewLscSVG)); - }else if(QFileInfo(themePath + KBackgroundLscNVG).exists()){ - themeInfo->setLandscapePreviewIcon(HbIcon(themePath + KBackgroundLscNVG)); - } else if(QFileInfo(themePath + KBackgroundLscSVG).exists()){ - themeInfo->setLandscapePreviewIcon(HbIcon(themePath + KBackgroundLscSVG)); - } else if(QFileInfo(themePath + KBackgroundLscPNG).exists()){ - themeInfo->setLandscapePreviewIcon(HbIcon(themePath + KBackgroundLscPNG)); - } else{ - themeInfo->setLandscapePreviewIcon(HbIcon(defaultTheme()->icon())); - } - } - else { - themeInfo->setLandscapePreviewIcon(HbIcon(themePath + previewPathLsc)); - } return themeInfo; } +/*! + * given a path to the theme, returns the preview icon or just a Null icon + * if it doesn't exist. + */ +HbIcon CpThemeUtil::getPreviewIcon(const QString& themePath) +{ + HbIcon themeIcon; + if(QFileInfo(themePath + KPreviewThumbnailNVG).exists()){ + themeIcon = HbIcon(themePath + KPreviewThumbnailNVG); + }else if(QFileInfo(themePath + KPreviewThumbnailSVG).exists()){ + themeIcon = HbIcon(themePath + KPreviewThumbnailSVG); + }else if(QFileInfo(themePath + KBackgroundPrtNVG).exists()){ + themeIcon = HbIcon(themePath + KBackgroundPrtNVG); + }else if(QFileInfo(themePath + KBackgroundPrtSVG).exists()){ + themeIcon = HbIcon(themePath + KBackgroundPrtSVG); + } + return themeIcon; + +} + /*! Creates a list of CpThemeInfo objects representing theme information. * */ QList CpThemeUtil::buildThemeList() { QList themeList; - + QList > mThemesPathList = availableThemes(); QPairpair; foreach (pair, mThemesPathList) { @@ -198,17 +159,14 @@ } /*! - * Returns the default theme information. + * Returns the default theme path. */ -CpThemeInfo* CpThemeUtil::defaultTheme() +QString CpThemeUtil::defaultTheme() { //static because default theme doesn't change. - static CpThemeInfo *defaultTheme = 0; - if(!defaultTheme) { - defaultTheme = new CpThemeInfo(); - } - QString defaultThemePath; - if(defaultTheme->name().isEmpty()) { + static QString defaultThemePath(""); + + if(defaultThemePath.isEmpty()) { #ifdef Q_OS_SYMBIAN @@ -225,10 +183,9 @@ } #endif - defaultTheme = buildThemeInfo(defaultThemePath); - + } - return defaultTheme; + return defaultThemePath; }