src/hbcore/core/hbthemesystemeffectmap.cpp
changeset 34 ed14f46c0e55
parent 7 923ff622b8b9
--- a/src/hbcore/core/hbthemesystemeffectmap.cpp	Mon Oct 04 17:49:30 2010 +0300
+++ b/src/hbcore/core/hbthemesystemeffectmap.cpp	Mon Oct 18 18:23:13 2010 +0300
@@ -34,6 +34,7 @@
 
 const TInt tfxPurpose = Qt::Window;
 #endif //Q_OS_SYMBIAN
+const QString nullEffect = "NULL";
 
 #ifdef HBTHEMESYSTEMEFFECT_DEBUG
 const char *dbgRegister = "REGISTER ";
@@ -164,19 +165,18 @@
     TPtrC baseResourceDir = baseEffectsFolder.utf16();
 #ifdef HBTHEMESYSTEMEFFECT_DEBUG
     qDebug() << "HbThemeSystemEffectMap::registerEffects effect folder:" << mEffectsFolder
-            << "base theme effect folder:" << baseEffectsFolder;
+             << "base theme effect folder:" << baseEffectsFolder;
 #endif //HBTHEMESYSTEMEFFECT_DEBUG
     while (mapIt.hasNext()) {
         mapIt.next();
         // Register entry
         TInt tfxAction = tfxTransitionAction(mapIt.key().mEffectId);
-        // If no effect files defined, unregister effect
-        if (mapIt.value().mOutgoingFile.isEmpty()
-                && mapIt.value().mIncomingFile.isEmpty()) {
-            wsSession.UnregisterEffect(tfxAction, tfxPurpose, mapIt.key().mAppUid);
-        } else {
-            TPtrC outgoingEffect = mapIt.value().mOutgoingFile.utf16();
-            TPtrC incomingEffect = mapIt.value().mIncomingFile.utf16();
+        QString incomingFile = mapIt.value().mIncomingFile;
+        QString outgoingFile = mapIt.value().mOutgoingFile;
+        // Do not register if no effect files are defined
+        if (isValidEffectEntry(incomingFile, outgoingFile)) {
+            TPtrC outgoingEffect = outgoingFile.utf16();
+            TPtrC incomingEffect = incomingFile.utf16();
             TPtrC resourceDir = mapIt.value().mFromBaseTheme ? baseResourceDir : themeResourceDir;
             TBitFlags effectFlags;
             if (mapIt.value().mIncomingHasPriority) {
@@ -213,3 +213,20 @@
 }
 #endif //Q_OS_SYMBIAN
 
+bool HbThemeSystemEffectMap::isValidEffectEntry(QString &incomingFile, QString &outgoingFile) const
+{
+    bool outgoingEmpty = outgoingFile.isEmpty();
+    bool incomingEmpty = incomingFile.isEmpty();
+    bool validEntry = !(outgoingEmpty && incomingEmpty);
+    if (validEntry) {
+        // If no effect should be displayed on transition, register with "NULL" string
+        if (outgoingEmpty) {
+            outgoingFile = nullEffect;
+        }
+        if (incomingEmpty) {
+            incomingFile = nullEffect;
+        }
+    }
+    return validEntry;
+}
+