qtinternetradio/ui/src/irmainview.cpp
changeset 3 ee64f059b8e1
parent 0 09774dfdd46b
child 5 0930554dc389
--- a/qtinternetradio/ui/src/irmainview.cpp	Mon May 03 12:25:23 2010 +0300
+++ b/qtinternetradio/ui/src/irmainview.cpp	Fri May 14 15:43:29 2010 +0300
@@ -18,13 +18,14 @@
 #include <hblistview.h>
 
 #include "irapplication.h"
-#include "irabstractviewmanager.h"
+#include "irviewmanager.h"
 #include "irmainview.h"
 #include "ircategoryview.h"
 #include "irstationsview.h"
 #include "irqnetworkcontroller.h"
 #include "irmainmodel.h"
 #include "irqenums.h"
+#include "iruidefines.h"
 
 //                                          public functions
 
@@ -36,13 +37,13 @@
                                                       iMainModel(NULL)
 {
     setFlag(EViewFlag_ClearStackWhenActivate);
-    
-	connect(iNetworkController, SIGNAL(networkRequestNotified(IRQNetworkEvent)),
-	        this, SLOT(networkRequestNotified(IRQNetworkEvent)));
-	setHeadingText(tr("Collections"));
+	iLoader.load(ABSTRACT_LIST_VIEW_BASE_LAYOUT_FILENAME, ABSTRACT_LIST_VIEW_BASE_WITH_TOOLBAR_SECTION);
 	
-	iMainModel = new IRMainModel(this);
-	iListView->setModel(iMainModel);
+	//if this view is not starting view, finish all initialization in constructor
+	if (getViewManager()->views().count() > 0)
+	{
+	    lazyInit();
+	}
 }
 
 /*
@@ -52,30 +53,6 @@
 {
 }
 
-/*
- * Description : virtual function from base class IRBaseView.
- *               handle view commands.
- * Parameters  : aCommand : see the definition of TIRViewCommand
- * Return      : EIR_DoDefault : caller does default handling
- *               EIR_NoDefault : caller doesn't do default handling
- */
-TIRHandleResult IRMainView::handleCommand(TIRViewCommand aCommand, TIRViewCommandReason aReason)
-{
-    TIRHandleResult ret = IrAbstractListViewBase::handleCommand(aCommand, aReason);
-    switch (aCommand)
-    {
-    case EIR_ViewCommand_ACTIVATED:
-        updateView();
-        ret = EIR_NoDefault;
-        break;
-        
-    default:
-        break;
-    }
-    
-    return ret;
-}
-
 //                                       slots functions
 
 /*
@@ -195,3 +172,22 @@
     IrAbstractListViewBase::updateView();
     iMainModel->checkUpdate();
 }
+
+void IRMainView::lazyInit()
+{
+    if (!initCompleted())
+    {
+        IrAbstractListViewBase::lazyInit();
+        
+        setCheckedAction();
+        
+        connect(iNetworkController, SIGNAL(networkRequestNotified(IRQNetworkEvent)),
+                this, SLOT(networkRequestNotified(IRQNetworkEvent)));
+        
+        iMainModel = new IRMainModel(iApplication->getPlayList(), this);
+        iMainModel->checkUpdate();
+        iListView->setModel(iMainModel);
+        
+        setInitCompleted(true);
+    }
+}