phonebookui/pbkcommonui/src/cntdefaultviewmanager.cpp
changeset 37 fd64c38c277d
parent 31 2a11b5b00470
child 40 b46a585f6909
equal deleted inserted replaced
31:2a11b5b00470 37:fd64c38c277d
   131     }
   131     }
   132 }
   132 }
   133 
   133 
   134 void CntDefaultViewManager::deleteOldView()
   134 void CntDefaultViewManager::deleteOldView()
   135 {
   135 {
   136     if (mOldView && !mOldView->view()->isVisible())
   136     disconnect(mMainWindow, SIGNAL(viewReady()), this, SLOT(deleteOldView()));
       
   137     
       
   138     if (mOldView)
   137     {
   139     {
   138         disconnect(mMainWindow, SIGNAL(viewReady()), this, SLOT(deleteOldView()));
       
   139         mOldView->deactivate();
   140         mOldView->deactivate();
   140         mMainWindow->removeView(mOldView->view());
       
   141         
   141         
   142         if (!mOldView->isDefault())
   142         // Due to something strange in wk16, this check will fail occationally and cause
       
   143         // a memory leak... most likely when opening edit view for the first time
       
   144         if (!mOldView->view()->isVisible())
   143         {
   145         {
   144             delete mOldView;
   146             mMainWindow->removeView(mOldView->view());
   145             mOldView = NULL;
   147             
       
   148             if (!mOldView->isDefault())
       
   149             {
       
   150                 delete mOldView;
       
   151                 mOldView = NULL;
       
   152             }
       
   153             // If view id is not in defaults list, it means that view has changed
       
   154             // its opinnion about preserving state to true.
       
   155             else if ( !mDefaults.contains(mOldView->viewId()) ) 
       
   156             {
       
   157                 mDefaults.insert( mOldView->viewId(), mOldView );
       
   158             }
   146         }
   159         }
   147         // If view id is not in defaults list, it means that view has changed
   160     }
   148         // its opinnion about preserving state to true.
       
   149         else if ( !mDefaults.contains(mOldView->viewId()) ) 
       
   150         {
       
   151             mDefaults.insert( mOldView->viewId(), mOldView );
       
   152         }
       
   153 
   161 
   154         mMainWindow->setInteractive(true);
   162     mMainWindow->setInteractive(true);
   155     }
       
   156 }
   163 }
   157 
   164 
   158 void CntDefaultViewManager::switchView(const CntViewParameters aArgs, QFlags<Hb::ViewSwitchFlag> flags)
   165 void CntDefaultViewManager::switchView(const CntViewParameters aArgs, QFlags<Hb::ViewSwitchFlag> flags)
   159 {
   166 {
   160     mMainWindow->setInteractive(false);
   167     mMainWindow->setInteractive(false);