--- a/phoneuis/bubblemanager2/bubblecore/src/bubblemanager2.cpp Tue Jun 15 14:14:38 2010 +0100
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubblemanager2.cpp Thu Jul 22 16:33:21 2010 +0100
@@ -24,6 +24,7 @@
#include <hbaction.h>
#include <hbstackedlayout.h>
#include <hbmainwindow.h>
+#include <hbstyleloader.h>
#include "bubblemanager2.h"
#include "bubbleheader.h"
@@ -145,7 +146,9 @@
}
if (!mActiveHeaders.count()) {
+ // all calls ended
mBubbleImageManager->releasePixmaps();
+ releaseNonCachedViews();
}
// restore mute state
@@ -549,6 +552,7 @@
} else if (!muted && mMuted) {
mEffectHandler->startEffect(BubbleMutedDisappear);
} else {
+ mEffectHandler->cancelAllEffects(mMutedIcon);
mMutedIcon->setVisible(muted);
}
}
@@ -925,3 +929,26 @@
}
}
+void BubbleManager::releaseNonCachedViews()
+{
+ static const int viewCount = 3;
+ static const int views[viewCount] = {
+ BubbleWidgetManager::TwoCallsView,
+ BubbleWidgetManager::ThreeCallsView,
+ BubbleWidgetManager::ConferenceView
+ };
+
+ for (int i=0; i < viewCount; i++ ) {
+ BubbleWidgetManager::View viewid =
+ (BubbleWidgetManager::View)views[i];
+
+ if (mWidgetManager->isLoaded(viewid)) {
+ QGraphicsWidget* view = mWidgetManager->view(viewid);
+
+ if (view) {
+ removeFromLayout(view);
+ mWidgetManager->releaseView(viewid);
+ }
+ }
+ }
+}