controlpanelui/src/cpserviceprovider/src/cpservicemainwindow.cpp
changeset 22 a5692c68d772
parent 19 36aa4756ee82
child 33 0cfa53de576f
--- a/controlpanelui/src/cpserviceprovider/src/cpservicemainwindow.cpp	Thu Jun 10 16:07:41 2010 +0800
+++ b/controlpanelui/src/cpserviceprovider/src/cpservicemainwindow.cpp	Fri Jun 25 17:12:20 2010 +0800
@@ -22,7 +22,7 @@
 #include "cpsplogger.h"
 
 CpServiceMainWindow::CpServiceMainWindow(QWidget *parent /* = 0*/)
-: HbMainWindow(parent), mLauncherService(0)
+: HbMainWindow(parent), mLauncherService(0), mPreviousView(0)
 {
     CPSP_LOG("CpServiceMainWindow Constructing...");
     mLauncherService = new CpLauncherService(this);
@@ -37,6 +37,8 @@
 {
     mSettingViewPointer = settingView;
     
+    mPreviousView = currentView();
+    
     connect(settingView, SIGNAL(aboutToClose()), this, SLOT(quit()));    
     addView(settingView);
     setCurrentView(settingView);
@@ -46,6 +48,8 @@
 {
     CPSP_LOG("CpServiceMainWindow::quit()");
     
+    closeSettingView();
+    
     connect(mLauncherService, SIGNAL(returnValueDelivered()), qApp, SLOT(quit()));
     mLauncherService->complete();
   
@@ -59,4 +63,14 @@
     */
 }
 
+void CpServiceMainWindow::closeSettingView()
+{
+    if (mSettingViewPointer) {
+        removeView(mSettingViewPointer);
+        mSettingViewPointer->deleteLater();
+    }
+    
+    setCurrentView(mPreviousView);
+}
+
 //End of File