From: Serge Ziryukin Date: Tue, 13 Apr 2010 17:28:37 +0000 (+0300) Subject: new game/toggle fullscreen buttons X-Git-Url: http://git.maemo.org/git/?p=colorflood;a=commitdiff_plain;h=9b18c910c4298b3f2a3667bd6fa16ca7231dfc04 new game/toggle fullscreen buttons --- diff --git a/colorflood/src/colorflood.qm b/colorflood/src/colorflood.qm index 1d5f4e8..4282c75 100644 Binary files a/colorflood/src/colorflood.qm and b/colorflood/src/colorflood.qm differ diff --git a/colorflood/src/colorflood.ts b/colorflood/src/colorflood.ts index 7711989..0672e6c 100644 --- a/colorflood/src/colorflood.ts +++ b/colorflood/src/colorflood.ts @@ -4,13 +4,13 @@ Field - + You won! win message Вы победили! - + You lost! fail message Вы проиграли! @@ -34,7 +34,18 @@ Window - + + Toggle fullscreen + Полноэкранный режим + + + + New game + New Game + Новая игра + + + <font size="24">Turns: %1/%2</font> number of turns <font size="24">Шагов: %1/%2</font> diff --git a/colorflood/src/field.cpp b/colorflood/src/field.cpp index c2c556c..44e3259 100644 --- a/colorflood/src/field.cpp +++ b/colorflood/src/field.cpp @@ -189,12 +189,6 @@ void Field::floodNeighbours (quint8 brush, int x, int y) tryFloodRecurse(brush, x, y + 1); } -void Field::mousePressEvent (QMouseEvent *event) -{ - if (event->button() == Qt::LeftButton) - randomize(); -} - void Field::paintEvent (QPaintEvent *event) { QPainter painter; diff --git a/colorflood/src/field.hpp b/colorflood/src/field.hpp index 9009857..81deb1b 100644 --- a/colorflood/src/field.hpp +++ b/colorflood/src/field.hpp @@ -54,7 +54,6 @@ private: static const int numRects[NUM_SIZES]; static const int numTurns[NUM_SIZES]; - void randomize (); static int getRectSize (FieldSize size); void tryFloodRecurse (quint8 brush, int x, int y); void floodNeighbours (quint8 brush, int x, int y); @@ -65,13 +64,13 @@ private: bool finished; protected: - void mousePressEvent (QMouseEvent *event); void paintEvent (QPaintEvent *event); signals: void turnsChanged (int turns); public slots: + void randomize (); void flood (int colorIndex); }; diff --git a/colorflood/src/window.cpp b/colorflood/src/window.cpp index 625022b..63b485b 100644 --- a/colorflood/src/window.cpp +++ b/colorflood/src/window.cpp @@ -15,6 +15,7 @@ #include #include #include +#include #include "window.hpp" #include "colorbuttons.hpp" #include "field.hpp" @@ -26,12 +27,6 @@ Window::Window () setWindowTitle("Color Flood"); setWindowIcon(QIcon(":/images/icon_48x48.png")); -#if defined(Q_WS_HILDON) || defined(Q_WS_MAEMO_5) - setWindowState(windowState() | Qt::WindowFullScreen); -#else - setFixedSize(800, 480); -#endif - //new FullScreenExitButton(this); int turns; @@ -53,11 +48,22 @@ Window::Window () updateTurns(turns); + QHBoxLayout *secondary = new QHBoxLayout; + QPushButton *toggleFS = new QPushButton(QIcon("/usr/share/icons/hicolor/64x64/hildon/general_fullsize.png"), tr("Toggle fullscreen"), this); + QObject::connect(toggleFS, SIGNAL(pressed()), this, SLOT(toggleFullscreen())); + QPushButton *newGame = new QPushButton(tr("New game"), this); + QObject::connect(newGame, SIGNAL(pressed()), field, SLOT(randomize())); + + secondary->addWidget(newGame); + secondary->addWidget(toggleFS); + QVBoxLayout *vl = new QVBoxLayout; vl->addWidget(colorButtons); vl->setAlignment(colorButtons, Qt::AlignRight | Qt::AlignTop); vl->addWidget(turnsLabel); vl->setAlignment(turnsLabel, Qt::AlignRight | Qt::AlignTop); + vl->addLayout(secondary); + vl->setAlignment(secondary, Qt::AlignRight | Qt::AlignBottom); QHBoxLayout *hl = new QHBoxLayout; hl->addWidget(field); @@ -65,6 +71,11 @@ Window::Window () hl->addLayout(vl); setLayout(hl); + + QSettings settings; + + if (settings.value("fullscreen", true).toBool()) + showFullScreen(); } void Window::updateTurns (int turns) @@ -74,3 +85,16 @@ void Window::updateTurns (int turns) .arg(turns) .arg(field->getNumTurnsOfSize(field->getSize()))); } + +void Window::toggleFullscreen () +{ + bool isFullscreen = windowState() & Qt::WindowFullScreen; + + QSettings settings; + settings.setValue("fullscreen", !isFullscreen); + + if (isFullscreen) + showNormal(); + else + showFullScreen(); +} diff --git a/colorflood/src/window.hpp b/colorflood/src/window.hpp index e97b602..dd1f4a1 100644 --- a/colorflood/src/window.hpp +++ b/colorflood/src/window.hpp @@ -29,6 +29,7 @@ public: private slots: void updateTurns (int turns); + void toggleFullscreen (); private: ColorButtons *colorButtons;