--- a/controlpanelplugins/themeplugin/src/cpthemechanger.cpp Fri Jun 25 17:12:20 2010 +0800
+++ b/controlpanelplugins/themeplugin/src/cpthemechanger.cpp Wed Sep 29 10:09:58 2010 +0800
@@ -39,7 +39,9 @@
QObject(p),
mCurrentTheme(0)
{
- connect(hbInstance->theme(),SIGNAL(changeFinished()), this, SLOT(changeFinished()));
+ if(hbInstance->theme()) {
+ connect(hbInstance->theme(),SIGNAL(changeFinished()), this, SLOT(changeFinished()));
+ }
setCurrentTheme();
}
@@ -73,8 +75,7 @@
if(mCurrentTheme && mCurrentTheme->name() == themeName) {
return;
- }
- else {
+ } else {
//buildThemeInfo creates new theme info.
CpThemeInfo* tmpTheme = CpThemeUtil::buildThemeInfo(HbThemeServices::themePath(), themeName);
@@ -92,15 +93,15 @@
/*!
Change a theme. Returns true on success, false otherwise.
*/
-bool CpThemeChanger::changeTheme(const QString& newTheme)
+bool CpThemeChanger::changeTheme(const CpThemeInfo& newTheme)
{
bool result = false;
// Skip doing this if the request is for the current theme
- if (newTheme.isEmpty() || newTheme == mCurrentTheme->name()) {
+ if (newTheme.name().isEmpty() || (mCurrentTheme && newTheme.name() == mCurrentTheme->name())) {
return result;
}
- QString themePath = CpThemeUtil::themePath(newTheme);
+ QString themePath = newTheme.itemData();
if(!themePath.isEmpty()) {
HbThemeServices::setTheme(themePath);
@@ -124,9 +125,7 @@
*/
void CpThemeChanger::changeFinished()
{
-
setCurrentTheme();
-
emit themeChangeFinished();
}