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); |