From: Serge Ziryukin Date: Tue, 13 Apr 2010 07:28:56 +0000 (+0300) Subject: almost done X-Git-Url: http://git.maemo.org/git/?p=colorflood;a=commitdiff_plain;h=2e5611c6d0cef6a2bd61bf7e0140e7144ab65e79 almost done --- diff --git a/colorflood/src/CMakeLists.txt b/colorflood/src/CMakeLists.txt index d6a5f59..40dea92 100644 --- a/colorflood/src/CMakeLists.txt +++ b/colorflood/src/CMakeLists.txt @@ -10,14 +10,17 @@ # GNU General Public License for more details. set(src + colorbuttons.cpp + colorscheme.cpp field.cpp main.cpp window.cpp - colorscheme.cpp ) set(moc + colorbuttons.hpp field.hpp + fullscreenexitbutton.hpp window.hpp ) diff --git a/colorflood/src/window.cpp b/colorflood/src/window.cpp index 29caac5..15c2861 100644 --- a/colorflood/src/window.cpp +++ b/colorflood/src/window.cpp @@ -12,31 +12,58 @@ */ #include +#include #include +#include #include "window.hpp" +#include "colorbuttons.hpp" #include "field.hpp" +#include "fullscreenexitbutton.hpp" 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()))); } diff --git a/colorflood/src/window.hpp b/colorflood/src/window.hpp index 808b89f..e97b602 100644 --- a/colorflood/src/window.hpp +++ b/colorflood/src/window.hpp @@ -16,7 +16,9 @@ #include +class ColorButtons; class Field; +class QLabel; class Window : public QWidget { @@ -25,11 +27,13 @@ class Window : public QWidget public: Window (); -public slots: - void randomize (); +private slots: + void updateTurns (int turns); private: + ColorButtons *colorButtons; Field *field; + QLabel *turnsLabel; }; #endif // !_WINDOW_HPP