src/hbservers/hbthemeserver/hbthemeserver_symbian.cpp
changeset 28 b7da29130b0e
parent 23 e6ad4ef83b23
child 30 80e4d18b72f5
--- a/src/hbservers/hbthemeserver/hbthemeserver_symbian.cpp	Thu Sep 02 20:44:51 2010 +0300
+++ b/src/hbservers/hbthemeserver/hbthemeserver_symbian.cpp	Fri Sep 17 08:32:10 2010 +0300
@@ -195,11 +195,11 @@
     // Set up the listener to listen for Publish events
     TRAPD(err, iListener = CHbThemeChangeNotificationListener::NewL(*this));
     if (err) {
-        qWarning( "HbThemeServerPrivate::HbThemeServerPrivate: CHbThemeChangeNotificationListener::NewL failed = %d", err );
+        THEME_GENERIC_DEBUG() << Q_FUNC_INFO << "CHbThemeChangeNotificationListener::NewL failed. Error code:" << err;
     } else {
         TRAPD(err, iListener->startListeningL());
         if (err) {
-             qWarning( "HbThemeServerPrivate::HbThemeServerPrivate: iListener->startListening failed = %d", err );
+             THEME_GENERIC_DEBUG() << Q_FUNC_INFO << "iListener->startListening failed. Error code:" << err;
          }
     }    
 }
@@ -236,7 +236,7 @@
         
         QFile currentIndexfile(indexFileName);
         if(!currentIndexfile.open(QIODevice::ReadOnly)) {
-            qWarning()<< "HbSymbianThemeServer: No Index file found in the new theme, How did this happen ??";
+            THEME_GENERIC_DEBUG()<< Q_FUNC_INFO << "No Index file found in the new theme.";
             return false;
         } else {
             currentIndexfile.close();
@@ -269,10 +269,7 @@
     iCurrentThemeName = path.dirName();
     iCurrentThemePath = path.absolutePath();
 
-    #ifdef THEME_INDEX_TRACES
-    qDebug() << "ThemeIndex: theme change request, new theme =" << cleanThemeName.toUtf8();
-    #endif
-
+    THEME_INDEX_DEBUG() << Q_FUNC_INFO << "Theme change request, new theme =" << cleanThemeName.toUtf8();
 
     // Clear cached icons and session data
     clearIconCache();
@@ -292,9 +289,7 @@
 */
 CSession2* HbThemeServerPrivate::NewSessionL(const TVersion& aVersion, const RMessage2& /*aMessage*/) const
 {
-#ifdef THEME_SERVER_TRACES
-    qDebug() << "HbThemeServerPrivate::NewSessionL: entered";
-#endif
+    THEME_GENERIC_DEBUG() << "entering" << Q_FUNC_INFO;
     // Check that the version is OK
     TVersion v(KThemeServerMajorVersionNumber, KThemeServerMinorVersionNumber, KThemeServerBuildVersionNumber);
     if (!User::QueryVersionSupported(v, aVersion))
@@ -657,19 +652,11 @@
 */
 void HbThemeServerSession::ServiceL(const RMessage2& aMessage)
 {
-#ifdef THEME_SERVER_TRACES
-    qDebug() << "Just entered HbThemeServerSession::ServiceL";
-#endif
+    THEME_GENERIC_DEBUG() << "entered" << Q_FUNC_INFO << "with function:" << aMessage.Function();
 
     TRAPD(err, DispatchMessageL(aMessage));
     aMessage.Complete(err);
-
-#ifdef THEME_SERVER_TRACES
-    QString er;
-    er.setNum(err);
-    qDebug() << "completed DispatchMessageL error code is " + er;
-#endif
-
+    THEME_GENERIC_DEBUG() << "completed" << Q_FUNC_INFO << "with error code" + err;
 }
 
 /**
@@ -680,10 +667,6 @@
 */
 void HbThemeServerSession::DispatchMessageL(const RMessage2& aMessage)
 {
-#ifdef THEME_SERVER_TRACES
-    qDebug() << "Just entered HbThemeServerSession::DispatchMessageL";
-#endif
-
     switch (aMessage.Function()) {
     case EStyleSheetLookup:
         HandleStyleSheetLookupL(aMessage);
@@ -725,7 +708,7 @@
 
     case ENotifyForegroundLost:
 #if defined(HB_SGIMAGE_ICON) || defined(HB_NVG_CS_ICON)
-        freeClientGpuResources();
+        freeIconResources();
 #endif
         break;
         //Debug Code for Test Purpose
@@ -928,7 +911,6 @@
         iServer->FreeGpuRam(params.bytesToFree, params.useSwRendering);
         break;
     }
-
     case ERenderModeSwitch: {
         TInt mode = 0;
         TPckg<TInt> paramPckg(mode);      
@@ -954,7 +936,6 @@
         aMessage.WriteL(1, out);
         break;
     }
-
     case ETypefaceOffset: {
         HandleTypefaceReqL(aMessage);
         break;
@@ -963,18 +944,10 @@
         HandleMissedHbCssLookupL(aMessage);
         break;
     }
-
-
-
-    // This is an example of a request that we know about, but don't support.
-    // We cause KErrNotSupported to be returned to the client.
     default:
         PanicClient(aMessage, EBadRequest);
         break;
     }
-#ifdef THEME_SERVER_TRACES
-    qDebug() << "Leave HbThemeServerSession::DispatchMessageL";
-#endif
 }
 
 void HbThemeServerSession::SwitchRenderingMode(HbRenderingMode aRenderMode)
@@ -999,9 +972,7 @@
 void HbThemeServerSession::HandleStyleSheetLookupL(const RMessage2& aMessage)
 {
     if (aMessage.GetDesLength(0) == 0) {
-#ifdef THEME_SERVER_TRACES
-        qDebug() << "Empty Filename";
-#endif
+        THEME_GENERIC_DEBUG() << Q_FUNC_INFO << "no filename given.";
         return;
     }
 
@@ -1187,10 +1158,6 @@
     // create dshared pixmap info from HbIconCacheItem
     TPckg<HbSharedIconInfo> pixdata(data);
     aMessage.WriteL(1, pixdata);
-
-#ifdef THEME_SERVER_TRACES
-    qDebug() << "Completed  aMessage.WriteL";
-#endif
 }
 
 /**
@@ -1353,7 +1320,7 @@
             // currently only nvg type is used to create RSgImage
             if (format != HbIconCacheItemCreator::KNvg) {            
                 HbIconKey newKey(key);
-                key.renderMode = ESWRendering;
+                newKey.renderMode = ESWRendering;
                 cacheItem = iServer->iconCacheItem(newKey);
                 if (cacheItem) {
                     key.renderMode = ESWRendering;
@@ -1799,6 +1766,30 @@
 }
 
 /**
+freeIconResources - unloads all the resources in the session
+
+Iterates all the keys in sessionData and then CleanUpSessionIConItem is called
+on that item, which will do the cleanup based on the reference count.
+*/
+void HbThemeServerSession::freeIconResources()
+{
+    QList<HbIconKey> tempSessionData(sessionData);
+    QList<HbIconKey>::const_iterator itEnd( tempSessionData.constEnd() );
+    for ( QList<HbIconKey>::const_iterator iter = tempSessionData.constBegin();
+            iter != itEnd;
+            ++iter ) {
+                
+        iServer->CleanupSessionIconItem(*iter);
+        // remove the item in the session data.
+        sessionData.removeOne(*iter);
+               
+    }
+}
+
+
+
+
+/**
  * HbThemeServerSession::ClearSessionData
  *
  * Clears the session data list. Items in the server should be deleted before clearing.