qtinternetradio/ui/src/irmainview.cpp
branchGCC_SURGE
changeset 13 c9471d26c7f2
parent 12 608f67c22514
child 14 896e9dbc5f19
--- a/qtinternetradio/ui/src/irmainview.cpp	Mon Jun 21 22:33:45 2010 +0100
+++ b/qtinternetradio/ui/src/irmainview.cpp	Thu Jul 22 16:31:41 2010 +0100
@@ -14,6 +14,7 @@
 * Description:
 *
 */
+#include <hbtoolbar.h>
 #include <hbaction.h>
 #include <hblistview.h>
 
@@ -36,13 +37,13 @@
                                                       IrAbstractListViewBase(aApplication, aViewId),
                                                       iMainModel(NULL)
 {
-    setFlag(EViewFlag_ClearStackWhenActivate);
+    setFlag(EViewFlag_ClearStackWhenActivate|EViewFlag_StickyViewEnabled);
 	iLoader.load(ABSTRACT_LIST_VIEW_BASE_LAYOUT_FILENAME, ABSTRACT_LIST_VIEW_BASE_WITH_TOOLBAR_SECTION);
 	
 	//if this view is not starting view, finish all initialization in constructor
 	if (getViewManager()->views().count() > 0)
 	{
-	    lazyInit();
+	    normalInit();
 	}
 }
 
@@ -116,20 +117,18 @@
     switch (aEvent)
     {
     case EIRQNetworkConnectionEstablished:
-        iApplication->closeConnectingDialog();
-        
         if (EIR_UseNetwork_SelectItem == getUseNetworkReason())
         {
             handleItemSelected();
         }
-        setUseNetworkReason(EIR_UseNetwork_NoReason);
-        
         break;
         
     default:
         setCheckedAction();
         break;
     }
+    
+    setUseNetworkReason(EIR_UseNetwork_NoReason);
 }
 
 /*
@@ -173,12 +172,47 @@
     iMainModel->checkUpdate();
 }
 
+//from base class IRBaseView
+TIRHandleResult IRMainView::handleCommand(TIRViewCommand aCommand, TIRViewCommandReason aReason)
+{
+    if (!initCompleted())
+    {
+        return EIR_DoDefault;
+    }
+    
+    Q_UNUSED(aReason);
+    TIRHandleResult ret = IrAbstractListViewBase::handleCommand(aCommand, aReason);
+    
+    switch (aCommand)
+    {
+    case EIR_ViewCommand_ACTIVATED:
+        getViewManager()->saveScreenShot();
+        break;
+        
+    default:
+        break;
+    }
+    
+    return ret;
+}
+
 void IRMainView::lazyInit()
 {
     if (!initCompleted())
     {
+        normalInit();
+        
+        //initialization from handleCommand()
+        handleCommand(EIR_ViewCommand_ACTIVATED, EIR_ViewCommandReason_Show);
+    }
+}
+
+void IRMainView::normalInit()
+{
+    if (!initCompleted())
+    {
         IrAbstractListViewBase::lazyInit();
-        
+        initToolBar();
         setCheckedAction();
         
         connect(iNetworkController, SIGNAL(networkRequestNotified(IRQNetworkEvent)),
@@ -191,3 +225,12 @@
         setInitCompleted(true);
     }
 }
+
+void IRMainView::initToolBar()
+{
+    HbToolBar *viewToolBar = toolBar();
+    viewToolBar->addAction(iGenresAction);
+    viewToolBar->addAction(iCollectionsAction);
+    viewToolBar->addAction(iFavoritesAction);
+    viewToolBar->addAction(iSearchAction);
+}