--- a/phonebookui/cntcommonui/core/cntdefaultviewmanager.cpp Fri Oct 08 11:42:51 2010 +0300
+++ b/phonebookui/cntcommonui/core/cntdefaultviewmanager.cpp Fri Oct 15 12:24:46 2010 +0300
@@ -133,6 +133,7 @@
{
mArgs.insert( k, aArgs.value(k) );
}
+
mArgs.insert(EViewId, back );
if (mArgs.value(EViewId).toInt() != noView)
@@ -140,9 +141,8 @@
switchView( mArgs, flags );
}
else
- {
+ {
// exiting application
- cleanup();
closeApp();
}
@@ -164,34 +164,16 @@
QFlags<Hb::ViewSwitchFlag> flags;
mNavigator->next(aArgs.value(EViewId).toInt(), flags);
+
+ foreach(int k, aArgs.keys())
+ {
+ mArgs.insert(k, aArgs.value(k));
+ }
+
switchView(aArgs, flags);
CNT_EXIT
}
-/*
-QContactManager* CntDefaultViewManager::contactManager( const QString& aType )
-{
- CNT_ENTRY
-
- foreach ( QContactManager* mgr, mBackends )
- {
- QString uri = mgr->managerUri();
- if ( aType.compare(uri, Qt::CaseInsensitive) == 0 )
- {
- return mgr;
- }
- }
- QContactManager* manager = QContactManager::fromUri( aType );
-
- if ( manager )
- {
- mBackends.append( manager );
- }
-
- CNT_EXIT
- return manager;
-}
-*/
void CntDefaultViewManager::removeCurrentView()
{
@@ -234,11 +216,11 @@
CNT_EXIT
}
-void CntDefaultViewManager::switchView(const CntViewParameters aArgs, QFlags<Hb::ViewSwitchFlag> flags)
+void CntDefaultViewManager::switchView(const CntViewParameters args, QFlags<Hb::ViewSwitchFlag> flags)
{
CNT_ENTRY
- int id = aArgs.value(EViewId).toInt();
+ int id = args.value(EViewId).toInt();
if ( id != noView )
{
CntAbstractView* nextView(NULL);
@@ -258,20 +240,79 @@
}
mOldView = mCurrent;
- mCurrent = nextView;
- mMainWindow->addView(mCurrent->view());
- mMainWindow->setCurrentView(mCurrent->view(), true, flags);
- mCurrent->activate(aArgs);
-
+ activateView(nextView, args, flags);
removeCurrentView();
}
CNT_EXIT
}
-int CntDefaultViewManager::currentViewId()
+void CntDefaultViewManager::activateView(CntAbstractView* nextView, const CntViewParameters args, QFlags<Hb::ViewSwitchFlag> flags)
+{
+ CNT_ENTRY
+
+ mCurrent = nextView;
+ mMainWindow->addView(mCurrent->view());
+ mMainWindow->setCurrentView(mCurrent->view(), true, flags);
+ mCurrent->activate(args);
+
+ CNT_EXIT
+}
+
+bool CntDefaultViewManager::internalize(QDataStream &stream)
{
- return mCurrent->viewId();
+ CNT_ENTRY
+
+ int id = mNavigator->internalize(stream);
+ if (id == noView)
+ {
+ return false;
+ }
+
+ CntAbstractView* nextView(NULL);
+ nextView = mFactory->createView(id);
+ nextView->setEngine(*mEngine);
+
+ CntViewParameters viewParams;
+
+ bool success = nextView->internalize(stream, viewParams);
+
+ if (success)
+ {
+ if (nextView->isDefault())
+ {
+ mDefaults.insert(id, nextView);
+ }
+ QFlags<Hb::ViewSwitchFlag> flags;
+ mNavigator->next(id, flags);
+
+ activateView(nextView, viewParams, flags);
+ }
+ else
+ {
+ mNavigator->clearViewStack();
+ delete nextView;
+ }
+
+ CNT_EXIT
+ return success;
+}
+
+QString CntDefaultViewManager::externalize(QDataStream& stream) const
+{
+ CNT_ENTRY
+
+ mNavigator->externalize(stream);
+
+ QString activity;
+
+ if (mCurrent)
+ {
+ activity = mCurrent->externalize(stream);
+ }
+
+ CNT_EXIT
+ return activity;
}
// End of File