almost done
authorSerge Ziryukin <ftrvxmtrx@gmail.com>
Tue, 13 Apr 2010 07:28:56 +0000 (10:28 +0300)
committerSerge Ziryukin <ftrvxmtrx@gmail.com>
Tue, 13 Apr 2010 07:28:56 +0000 (10:28 +0300)
colorflood/src/CMakeLists.txt
colorflood/src/window.cpp
colorflood/src/window.hpp

index d6a5f59..40dea92 100644 (file)
 # GNU General Public License for more details.
 
 set(src
 # GNU General Public License for more details.
 
 set(src
+  colorbuttons.cpp
+  colorscheme.cpp
   field.cpp
   main.cpp
   window.cpp
   field.cpp
   main.cpp
   window.cpp
-  colorscheme.cpp
   )
 
 set(moc
   )
 
 set(moc
+  colorbuttons.hpp
   field.hpp
   field.hpp
+  fullscreenexitbutton.hpp
   window.hpp
   )
 
   window.hpp
   )
 
index 29caac5..15c2861 100644 (file)
 */
 
 #include <QPushButton>
 */
 
 #include <QPushButton>
+#include <QVBoxLayout>
 #include <QHBoxLayout>
 #include <QHBoxLayout>
+#include <QLabel>
 #include "window.hpp"
 #include "window.hpp"
+#include "colorbuttons.hpp"
 #include "field.hpp"
 #include "field.hpp"
+#include "fullscreenexitbutton.hpp"
 
 Window::Window ()
     : QWidget()
 {
     setWindowTitle(tr("Color Flood"));
 
 
 Window::Window ()
     : QWidget()
 {
     setWindowTitle(tr("Color Flood"));
 
-    //setWindowState(windowState() | Qt::WindowFullScreen);
+    setWindowState(windowState() | Qt::WindowFullScreen);
 
 
-    QPushButton *button = new QPushButton("randomize", this);
-    field = new Field(this);
+    new FullScreenExitButton(this);
 
 
-    QObject::connect(button, SIGNAL(pressed()), this, SLOT(randomize()));
+    int turns;
+    field = new Field(this, &turns);
+    colorButtons = new ColorButtons(this);
 
 
-    QHBoxLayout *layout = new QHBoxLayout;
-    layout->addWidget(button);
-    layout->setAlignment(button, Qt::AlignLeft);
-    layout->addWidget(field);
-    layout->setAlignment(field, Qt::AlignRight);
-    setLayout(layout);
+    QObject::connect(colorButtons,
+                     SIGNAL(flood(int)),
+                     field,
+                     SLOT(flood(int)));
+
+    turnsLabel = new QLabel(this);
+
+    QObject::connect(field,
+                     SIGNAL(turnsChanged(int)),
+                     this,
+                     SLOT(updateTurns(int)));
+
+    updateTurns(turns);
+
+    QVBoxLayout *vl = new QVBoxLayout;
+    vl->addWidget(turnsLabel);
+    vl->setAlignment(turnsLabel, Qt::AlignTop);
+
+    QHBoxLayout *hl = new QHBoxLayout;
+    hl->addWidget(colorButtons);
+    hl->setAlignment(colorButtons, Qt::AlignLeft);
+    hl->addWidget(field);
+    hl->setAlignment(field, Qt::AlignRight);
+
+    vl->addLayout(hl);
+    setLayout(vl);
 }
 
 }
 
-void Window::randomize ()
+void Window::updateTurns (int turns)
 {
 {
-    field->randomize();
+    turnsLabel->setText(QString("%1/%2")
+                        .arg(turns)
+                        .arg(field->getNumTurnsOfSize(field->getSize())));
 }
 }
index 808b89f..e97b602 100644 (file)
@@ -16,7 +16,9 @@
 
 #include <QWidget>
 
 
 #include <QWidget>
 
+class ColorButtons;
 class Field;
 class Field;
+class QLabel;
 
 class Window : public QWidget
 {
 
 class Window : public QWidget
 {
@@ -25,11 +27,13 @@ class Window : public QWidget
 public:
     Window ();
 
 public:
     Window ();
 
-public slots:
-    void randomize ();
+private slots:
+    void updateTurns (int turns);
 
 private:
 
 private:
+    ColorButtons *colorButtons;
     Field *field;
     Field *field;
+    QLabel *turnsLabel;
 };
 
 #endif // !_WINDOW_HPP
 };
 
 #endif // !_WINDOW_HPP