--- 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.