GCI2012: Abstract Page Load
authordag10
Mon, 14 Jan 2013 13:28:03 +0100
changeset 8384 a6e7a95f3b2e
parent 8383 b557c73a7593
child 8385 9e8924ff9813
GCI2012: Abstract Page Load
QTfrontend/hwform.cpp
QTfrontend/ui/page/AbstractPage.cpp
QTfrontend/ui/page/AbstractPage.h
QTfrontend/ui/page/pageeditteam.cpp
QTfrontend/ui/page/pagegamestats.cpp
QTfrontend/ui/page/pageoptions.cpp
--- a/QTfrontend/hwform.cpp	Mon Jan 14 13:19:47 2013 +0100
+++ b/QTfrontend/hwform.cpp	Mon Jan 14 13:28:03 2013 +0100
@@ -352,6 +352,7 @@
     }
 
     PagesStack.push(ID_PAGE_MAIN);
+    ((AbstractPage*)ui.Pages->widget(ID_PAGE_MAIN))->triggerPageEnter();
     GoBack();
 }
 
@@ -597,6 +598,10 @@
     
     qDebug("Leaving %s, entering %s", qPrintable(stringifyPageId(lastid)), qPrintable(stringifyPageId(id)));
 
+    // pageEnter and pageLeave events
+    ((AbstractPage*)ui.Pages->widget(lastid))->triggerPageLeave();    
+    ((AbstractPage*)ui.Pages->widget(id))->triggerPageEnter();
+
     if (id == ID_PAGE_DATADOWNLOAD)
     {
         ui.pageDataDownload->fetchList();
@@ -668,10 +673,6 @@
             curTeamSelWidget->resetPlayingTeams(teamsList);
         }
     }
-    else if (id == ID_PAGE_GAMESTATS)
-    {
-        ui.pageGameStats->renderStats();
-    }
 
     if (id == ID_PAGE_MAIN)
     {
@@ -701,6 +702,7 @@
     unnecessary.
    */
 
+
 #if (QT_VERSION >= 0x040600)
     if (!stopAnim)
     {
@@ -768,6 +770,7 @@
     int curid = ui.Pages->currentIndex();
     if (curid == ID_PAGE_MAIN)
     {
+        ((AbstractPage*)ui.Pages->widget(ID_PAGE_MAIN))->triggerPageLeave();
         if (!ui.pageVideos->tryQuit(this))
             return;
         stopAnim = true;
--- a/QTfrontend/ui/page/AbstractPage.cpp	Mon Jan 14 13:19:47 2013 +0100
+++ b/QTfrontend/ui/page/AbstractPage.cpp	Mon Jan 14 13:28:03 2013 +0100
@@ -25,6 +25,7 @@
 #include <QLabel>
 #include <QSize>
 #include <QFontMetricsF>
+#include <qDebug>
 
 #include "qpushbuttonwithsound.h"
 
@@ -163,3 +164,13 @@
 {
     return defautDesc;
 }
+
+void AbstractPage::triggerPageEnter()
+{
+    emit pageEnter();
+}
+
+void AbstractPage::triggerPageLeave()
+{
+    emit pageLeave();
+}
--- a/QTfrontend/ui/page/AbstractPage.h	Mon Jan 14 13:19:47 2013 +0100
+++ b/QTfrontend/ui/page/AbstractPage.h	Mon Jan 14 13:28:03 2013 +0100
@@ -78,12 +78,35 @@
         QString * getDefautDescription();
 
     signals:
+
         /**
          * @brief This signal is emitted when going back to the previous is
          * requested - e.g. when the back-button is clicked.
          */
         void goBack();
 
+        /**
+         * @brief This signal is emitted when the page is displayed
+         */
+        void pageEnter();
+
+        /**
+         * @brief This signal is emitted when this page is left
+         */
+        void pageLeave();
+
+    public slots:
+
+        /**
+         * @brief This slot is called to trigger this page's pageEnter signal
+         */
+        void triggerPageEnter();
+
+        /**
+         * @brief This slot is called to trigger this page's pageLeave signal
+         */
+        void triggerPageLeave();
+
     protected:
         /**
          * @brief Class constructor
--- a/QTfrontend/ui/page/pageeditteam.cpp	Mon Jan 14 13:19:47 2013 +0100
+++ b/QTfrontend/ui/page/pageeditteam.cpp	Mon Jan 14 13:28:03 2013 +0100
@@ -175,7 +175,7 @@
 
 void PageEditTeam::connectSignals()
 {
-    connect(this, SIGNAL(goBack()), this, SLOT(saveTeam()));
+    connect(this, SIGNAL(pageLeave()), this, SLOT(saveTeam()));
 
     signalMapper1 = new QSignalMapper(this);
     signalMapper2 = new QSignalMapper(this);
--- a/QTfrontend/ui/page/pagegamestats.cpp	Mon Jan 14 13:19:47 2013 +0100
+++ b/QTfrontend/ui/page/pagegamestats.cpp	Mon Jan 14 13:28:03 2013 +0100
@@ -110,6 +110,7 @@
 
 void PageGameStats::connectSignals()
 {
+    connect(this, SIGNAL(pageEnter()), this, SLOT(renderStats()));
     connect(btnSave, SIGNAL(clicked()), this, SIGNAL(saveDemoRequested()));
 }
 
--- a/QTfrontend/ui/page/pageoptions.cpp	Mon Jan 14 13:19:47 2013 +0100
+++ b/QTfrontend/ui/page/pageoptions.cpp	Mon Jan 14 13:28:03 2013 +0100
@@ -682,6 +682,7 @@
     connect(btnDefaults, SIGNAL(clicked()), this, SLOT(setDefaultOptions()));
 #endif
 
+    connect(this, SIGNAL(pageEnter()), this, SLOT(setTeamOptionsEnabled()));
     connect(SLQuality, SIGNAL(valueChanged(int)), this, SLOT(setQuality(int)));
     connect(CBResolution, SIGNAL(currentIndexChanged(int)), this, SLOT(setResolution(int)));
     connect(CBFullscreen, SIGNAL(stateChanged(int)), this, SLOT(setFullscreen(int)));