[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kmahjongg/qgraphic] /: Move GameView initialization to contructor.
From:       Christian Krippendorf <Coding () Christian-Krippendorf ! de>
Date:       2013-01-03 17:37:21
Message-ID: 20130103173721.6A7E8A6091 () git ! kde ! org
[Download RAW message or body]

Git commit 2ba6450e213e1a8760acc3b62cd63b8f620efb71 by Christian Krippendorf.
Committed on 03/01/2013 at 18:34.
Pushed by krippendorf into branch 'qgraphic'.

Move GameView initialization to contructor.

M  +31   -24   kmahjongg.cpp
M  +2    -0    kmahjongg.h

http://commits.kde.org/kmahjongg/2ba6450e213e1a8760acc3b62cd63b8f620efb71

diff --git a/kmahjongg.cpp b/kmahjongg.cpp
index c52746e..0132748 100644
--- a/kmahjongg.cpp
+++ b/kmahjongg.cpp
@@ -93,9 +93,18 @@ KMahjongg::KMahjongg(QWidget *parent)
     setMinimumSize(320, 320);
 
     // init board widget
-    // For new don't set a GameData object, as we don't got any board layout informations.
     m_pGameScene = new GameScene();
 
+    // load the layout
+    loadLayout();
+
+    // init game data
+    m_pGameData = new GameData(m_pBoardLayout->board());
+
+    // init view and add to window
+    m_pGameView = new GameView(m_pGameScene, m_pGameData, this);
+    setCentralWidget(m_pGameView);
+
     // Initialize boardEditor
     boardEditor = new Editor();
     boardEditor->setModal(false);
@@ -109,11 +118,20 @@ KMahjongg::KMahjongg(QWidget *parent)
     gameTimer = new KGameClock(this);
 
     connect(gameTimer, SIGNAL(timeChanged(QString)), this, SLOT(displayTime(QString)));
+    connect(m_pGameView, SIGNAL(statusTextChanged(QString, long)),
+                SLOT(showStatusText(QString, long)));
+    connect(m_pGameView, SIGNAL(itemNumberChanged(int, int, int)),
+                SLOT(showItemNumber(int, int, int)));
+    connect(m_pGameView, SIGNAL(gameOver(unsigned short, unsigned short)), this,
+                SLOT(gameOver(unsigned short, unsigned short)));
+
 
     mFinished = false;
     bDemoModeActive = false;
 
     loadSettings();
+
+    startNewGame();
 }
 
 KMahjongg::~KMahjongg()
@@ -254,35 +272,24 @@ void KMahjongg::showSettings()
     dialog->show();
 }
 
+void KMahjongg::loadLayout()
+{
+    if (!m_pBoardLayout->load(Prefs::layout())) {
+        kDebug() << "Error loading the layout. Try to load the default layout.";
+
+        m_pBoardLayout->loadDefault();
+    }
+}
+
 void KMahjongg::loadSettings()
 {
     // Just load the new layout, if it is not already set.
     if (m_pBoardLayout->path() != Prefs::layout()) {
-        if (!m_pBoardLayout->load(Prefs::layout())) {
-            kDebug() << "Error loading the layout. Try to load the default layout.";
+        loadLayout();
 
-            m_pBoardLayout->loadDefault();
-        }
-
-        GameData *pGameDataOld = m_pGameData;
+        delete m_pGameData;
         m_pGameData = new GameData(m_pBoardLayout->board());
-
-        if (m_pGameView == NULL) {
-            m_pGameView = new GameView(m_pGameScene, m_pGameData, this);
-
-            connect(m_pGameView, SIGNAL(statusTextChanged(QString, long)),
-                SLOT(showStatusText(QString, long)));
-            connect(m_pGameView, SIGNAL(itemNumberChanged(int, int, int)),
-                SLOT(showItemNumber(int, int, int)));
-            connect(m_pGameView, SIGNAL(gameOver(unsigned short, unsigned short)), this,
-                SLOT(gameOver(unsigned short, unsigned short)));
-
-            setCentralWidget(m_pGameView);
-        } else {
-            m_pGameView->setGameData(m_pGameData);
-        }
-
-        delete pGameDataOld;
+        m_pGameView->setGameData(m_pGameData);
 
         startNewGame();
     }
diff --git a/kmahjongg.h b/kmahjongg.h
index 740add3..fb2879d 100644
--- a/kmahjongg.h
+++ b/kmahjongg.h
@@ -132,6 +132,8 @@ private slots:
     void slotBoardEditor();
 
 private:
+    void loadLayout();
+
     unsigned long gameElapsedTime;
     bool bDemoModeActive;
     bool mFinished;
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic