<bool>false</bool>
</property>
<property name="styleSheet">
- <string>QWidget
-{
- background-color: #15445d;
- color: #9fb2bc;
-}</string>
+ <string/>
</property>
<widget class="QLabel" name="title">
<property name="geometry">
QPushButton* levelStartButton,
QWidget* startWidget, QLabel* startTitle,
QLabel* startLabel, QPushButton* startButton,
- QLabel* levelLabel, QLabel* scoreLabel,
+ QWidget* gameWidget, QLabel* levelLabel, QLabel* scoreLabel,
QStringList collections)
: gameController(gameController),
levelWidget(levelWidget), levelList(levelList), levelStartButton(levelStartButton),
startWidget(startWidget), startTitle(startTitle), startLabel(startLabel), startButton(startButton),
- levelLabel(levelLabel), scoreLabel(scoreLabel),
+ gameWidget(gameWidget), levelLabel(levelLabel), scoreLabel(scoreLabel),
curColl(""), level(0), totalScore(0)
{
connect(levelStartButton, SIGNAL(clicked()), this, SLOT(onLevelCollectionChosen()));
first = false;
}
}
+ gameWidget->hide();
+ startWidget->hide();
levelWidget->show();
}
void LevelSwitcher::onStartClicked()
{
- startWidget->hide();
levelLabel->setText(QString::number(level+1));
gameController->startLevel(QString(LEVDIR) + "/" + levels[level] + ".dat");
+ startWidget->hide();
+ gameWidget->show();
}
void LevelSwitcher::initiateLevel()
startButton->disconnect();
connect(startButton, SIGNAL(clicked()), this, SLOT(onStartClicked()));
startLabel->setText(introText);
+ gameWidget->hide();
startWidget->show();
}
LevelSwitcher(GameController* gameController,
QWidget* levelWidget, QListWidget* levelList, QPushButton* levelStartButton,
QWidget* startWidget, QLabel* startTitle, QLabel* startLabel, QPushButton* startButton,
- QLabel* levelLabel, QLabel* scoreLabel,
+ QWidget* gameWidget, QLabel* levelLabel, QLabel* scoreLabel,
QStringList levels);
private slots:
QLabel* startTitle; // Not owned
QLabel* startLabel; // Not owned
QPushButton* startButton; // Not owned
+ QWidget* gameWidget; // Not owned
QLabel* levelLabel; // Not owned
QLabel* scoreLabel; // Not owned
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>Game</class>
+ <widget class="QWidget" name="Game">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>800</width>
+ <height>430</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Form</string>
+ </property>
+ <widget class="QTableWidget" name="gameTable">
+ <property name="geometry">
+ <rect>
+ <x>270</x>
+ <y>60</y>
+ <width>510</width>
+ <height>365</height>
+ </rect>
+ </property>
+ <property name="font">
+ <font>
+ <family>Sans Serif</family>
+ <pointsize>2</pointsize>
+ </font>
+ </property>
+ <property name="layoutDirection">
+ <enum>Qt::LeftToRight</enum>
+ </property>
+ <property name="styleSheet">
+ <string/>
+ </property>
+ <property name="frameShadow">
+ <enum>QFrame::Plain</enum>
+ </property>
+ <property name="lineWidth">
+ <number>3</number>
+ </property>
+ <property name="verticalScrollBarPolicy">
+ <enum>Qt::ScrollBarAlwaysOff</enum>
+ </property>
+ <property name="horizontalScrollBarPolicy">
+ <enum>Qt::ScrollBarAlwaysOff</enum>
+ </property>
+ <property name="autoScroll">
+ <bool>false</bool>
+ </property>
+ <property name="editTriggers">
+ <set>QAbstractItemView::NoEditTriggers</set>
+ </property>
+ <property name="showDropIndicator" stdset="0">
+ <bool>false</bool>
+ </property>
+ <property name="dragDropOverwriteMode">
+ <bool>false</bool>
+ </property>
+ <property name="selectionMode">
+ <enum>QAbstractItemView::NoSelection</enum>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>68</width>
+ <height>68</height>
+ </size>
+ </property>
+ <property name="textElideMode">
+ <enum>Qt::ElideNone</enum>
+ </property>
+ <property name="showGrid">
+ <bool>true</bool>
+ </property>
+ <property name="gridStyle">
+ <enum>Qt::SolidLine</enum>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ <property name="cornerButtonEnabled">
+ <bool>false</bool>
+ </property>
+ <attribute name="horizontalHeaderVisible">
+ <bool>false</bool>
+ </attribute>
+ <attribute name="horizontalHeaderHighlightSections">
+ <bool>true</bool>
+ </attribute>
+ <attribute name="verticalHeaderVisible">
+ <bool>false</bool>
+ </attribute>
+ </widget>
+ <widget class="QLabel" name="scoreLegend">
+ <property name="geometry">
+ <rect>
+ <x>550</x>
+ <y>10</y>
+ <width>91</width>
+ <height>41</height>
+ </rect>
+ </property>
+ <property name="font">
+ <font>
+ <family>AlArabiya</family>
+ <pointsize>20</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>Score:</string>
+ </property>
+ </widget>
+ <widget class="QTableWidget" name="pieceTable">
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>60</y>
+ <width>245</width>
+ <height>355</height>
+ </rect>
+ </property>
+ <property name="frameShadow">
+ <enum>QFrame::Plain</enum>
+ </property>
+ <property name="lineWidth">
+ <number>3</number>
+ </property>
+ <property name="verticalScrollBarPolicy">
+ <enum>Qt::ScrollBarAlwaysOff</enum>
+ </property>
+ <property name="horizontalScrollBarPolicy">
+ <enum>Qt::ScrollBarAlwaysOff</enum>
+ </property>
+ <property name="autoScroll">
+ <bool>false</bool>
+ </property>
+ <property name="editTriggers">
+ <set>QAbstractItemView::NoEditTriggers</set>
+ </property>
+ <property name="showDropIndicator" stdset="0">
+ <bool>false</bool>
+ </property>
+ <property name="selectionMode">
+ <enum>QAbstractItemView::SingleSelection</enum>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>50</width>
+ <height>50</height>
+ </size>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ <property name="cornerButtonEnabled">
+ <bool>false</bool>
+ </property>
+ <property name="rowCount">
+ <number>6</number>
+ </property>
+ <property name="columnCount">
+ <number>2</number>
+ </property>
+ <attribute name="horizontalHeaderVisible">
+ <bool>false</bool>
+ </attribute>
+ <attribute name="verticalHeaderVisible">
+ <bool>false</bool>
+ </attribute>
+ <row/>
+ <row/>
+ <row/>
+ <row/>
+ <row/>
+ <row/>
+ <column/>
+ <column/>
+ </widget>
+ <widget class="QLabel" name="scoreLabel">
+ <property name="geometry">
+ <rect>
+ <x>640</x>
+ <y>10</y>
+ <width>111</width>
+ <height>41</height>
+ </rect>
+ </property>
+ <property name="font">
+ <font>
+ <family>AlArabiya</family>
+ <pointsize>20</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ <widget class="QPushButton" name="doneButton">
+ <property name="geometry">
+ <rect>
+ <x>150</x>
+ <y>10</y>
+ <width>101</width>
+ <height>41</height>
+ </rect>
+ </property>
+ <property name="font">
+ <font>
+ <family>Sans Serif</family>
+ <pointsize>20</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>Done</string>
+ </property>
+ </widget>
+ <widget class="QLabel" name="timeLegend">
+ <property name="geometry">
+ <rect>
+ <x>270</x>
+ <y>10</y>
+ <width>121</width>
+ <height>41</height>
+ </rect>
+ </property>
+ <property name="font">
+ <font>
+ <family>AlArabiya</family>
+ <pointsize>20</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>Time left:</string>
+ </property>
+ </widget>
+ <widget class="QLabel" name="levelLegend">
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>10</y>
+ <width>81</width>
+ <height>41</height>
+ </rect>
+ </property>
+ <property name="font">
+ <font>
+ <family>AlArabiya</family>
+ <pointsize>20</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>Level:</string>
+ </property>
+ </widget>
+ <widget class="QLabel" name="timeLabel">
+ <property name="geometry">
+ <rect>
+ <x>390</x>
+ <y>10</y>
+ <width>111</width>
+ <height>41</height>
+ </rect>
+ </property>
+ <property name="font">
+ <font>
+ <family>AlArabiya</family>
+ <pointsize>20</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ <widget class="QLabel" name="levelLabel">
+ <property name="geometry">
+ <rect>
+ <x>90</x>
+ <y>10</y>
+ <width>51</width>
+ <height>41</height>
+ </rect>
+ </property>
+ <property name="font">
+ <font>
+ <family>AlArabiya</family>
+ <pointsize>20</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
#include "ui_main.h"
#include "ui_startlevel.h"
#include "ui_collections.h"
+#include "ui_game.h"
#include "game.h"
#include <QDebug>
levelUi.setupUi(ui.collectionWidget);
QObject::connect(levelUi.quitButton, SIGNAL(clicked()), &app, SLOT(quit()));
- GameField field(ui.gameTable);
- AvailablePieces pieces(ui.pieceTable);
+ Ui::Game gameUi;
+ gameUi.setupUi(ui.gameWidget);
+
+ GameField field(gameUi.gameTable);
+ AvailablePieces pieces(gameUi.pieceTable);
QStringList levelCollections;
levelCollections << "intro" << "basic"; // TODO: read from fs
- GameController controller(&pieces, &field, ui.timeLabel, ui.doneButton);
+ GameController controller(&pieces, &field, gameUi.timeLabel, gameUi.doneButton);
LevelSwitcher switcher(&controller,
ui.collectionWidget, levelUi.levelList, levelUi.startButton,
ui.startWidget, startUi.startTitle,
startUi.startLabel, startUi.startButton,
- ui.levelLabel, ui.scoreLabel, levelCollections);
+ ui.gameWidget, gameUi.levelLabel, gameUi.scoreLabel, levelCollections);
mainWindow.show();
<string>Evil Plumber</string>
</property>
<property name="styleSheet">
- <string>QWidget
-{
- background-color: #15445d;
- color: #9fb2bc;
-}</string>
+ <string/>
</property>
- <widget class="QTableWidget" name="gameTable">
- <property name="geometry">
- <rect>
- <x>270</x>
- <y>50</y>
- <width>510</width>
- <height>365</height>
- </rect>
- </property>
- <property name="font">
- <font>
- <family>Sans Serif</family>
- <pointsize>2</pointsize>
- </font>
- </property>
- <property name="layoutDirection">
- <enum>Qt::LeftToRight</enum>
- </property>
- <property name="styleSheet">
- <string/>
- </property>
- <property name="frameShadow">
- <enum>QFrame::Plain</enum>
- </property>
- <property name="lineWidth">
- <number>3</number>
- </property>
- <property name="verticalScrollBarPolicy">
- <enum>Qt::ScrollBarAlwaysOff</enum>
- </property>
- <property name="horizontalScrollBarPolicy">
- <enum>Qt::ScrollBarAlwaysOff</enum>
- </property>
- <property name="autoScroll">
- <bool>false</bool>
- </property>
- <property name="editTriggers">
- <set>QAbstractItemView::NoEditTriggers</set>
- </property>
- <property name="showDropIndicator" stdset="0">
- <bool>false</bool>
- </property>
- <property name="dragDropOverwriteMode">
- <bool>false</bool>
- </property>
- <property name="selectionMode">
- <enum>QAbstractItemView::NoSelection</enum>
- </property>
- <property name="iconSize">
- <size>
- <width>68</width>
- <height>68</height>
- </size>
- </property>
- <property name="textElideMode">
- <enum>Qt::ElideNone</enum>
- </property>
- <property name="showGrid">
- <bool>true</bool>
- </property>
- <property name="gridStyle">
- <enum>Qt::SolidLine</enum>
- </property>
- <property name="wordWrap">
- <bool>false</bool>
- </property>
- <property name="cornerButtonEnabled">
- <bool>false</bool>
- </property>
- <attribute name="horizontalHeaderVisible">
- <bool>false</bool>
- </attribute>
- <attribute name="horizontalHeaderHighlightSections">
+ <widget class="QWidget" name="startWidget" native="true">
+ <property name="enabled">
<bool>true</bool>
- </attribute>
- <attribute name="verticalHeaderVisible">
- <bool>false</bool>
- </attribute>
- </widget>
- <widget class="QLabel" name="timeLegend">
- <property name="geometry">
- <rect>
- <x>270</x>
- <y>0</y>
- <width>121</width>
- <height>41</height>
- </rect>
- </property>
- <property name="font">
- <font>
- <family>AlArabiya</family>
- <pointsize>20</pointsize>
- </font>
- </property>
- <property name="text">
- <string>Time left:</string>
</property>
- </widget>
- <widget class="QLabel" name="timeLabel">
<property name="geometry">
<rect>
- <x>390</x>
- <y>0</y>
- <width>111</width>
- <height>41</height>
- </rect>
- </property>
- <property name="font">
- <font>
- <family>AlArabiya</family>
- <pointsize>20</pointsize>
- </font>
- </property>
- <property name="text">
- <string/>
- </property>
- </widget>
- <widget class="QTableWidget" name="pieceTable">
- <property name="geometry">
- <rect>
- <x>10</x>
- <y>50</y>
- <width>245</width>
- <height>355</height>
- </rect>
- </property>
- <property name="frameShadow">
- <enum>QFrame::Plain</enum>
- </property>
- <property name="lineWidth">
- <number>3</number>
- </property>
- <property name="verticalScrollBarPolicy">
- <enum>Qt::ScrollBarAlwaysOff</enum>
- </property>
- <property name="horizontalScrollBarPolicy">
- <enum>Qt::ScrollBarAlwaysOff</enum>
- </property>
- <property name="autoScroll">
- <bool>false</bool>
- </property>
- <property name="editTriggers">
- <set>QAbstractItemView::NoEditTriggers</set>
- </property>
- <property name="showDropIndicator" stdset="0">
- <bool>false</bool>
- </property>
- <property name="selectionMode">
- <enum>QAbstractItemView::SingleSelection</enum>
- </property>
- <property name="iconSize">
- <size>
- <width>50</width>
- <height>50</height>
- </size>
- </property>
- <property name="wordWrap">
- <bool>false</bool>
- </property>
- <property name="cornerButtonEnabled">
- <bool>false</bool>
- </property>
- <property name="rowCount">
- <number>6</number>
- </property>
- <property name="columnCount">
- <number>2</number>
- </property>
- <attribute name="horizontalHeaderVisible">
- <bool>false</bool>
- </attribute>
- <attribute name="verticalHeaderVisible">
- <bool>false</bool>
- </attribute>
- <row/>
- <row/>
- <row/>
- <row/>
- <row/>
- <row/>
- <column/>
- <column/>
- </widget>
- <widget class="QLabel" name="levelLegend">
- <property name="geometry">
- <rect>
- <x>10</x>
- <y>0</y>
- <width>81</width>
- <height>41</height>
- </rect>
- </property>
- <property name="font">
- <font>
- <family>AlArabiya</family>
- <pointsize>20</pointsize>
- </font>
- </property>
- <property name="text">
- <string>Level:</string>
- </property>
- </widget>
- <widget class="QPushButton" name="doneButton">
- <property name="geometry">
- <rect>
- <x>150</x>
- <y>0</y>
- <width>101</width>
- <height>41</height>
- </rect>
- </property>
- <property name="text">
- <string>Done</string>
- </property>
- </widget>
- <widget class="QLabel" name="scoreLegend">
- <property name="geometry">
- <rect>
- <x>550</x>
- <y>0</y>
- <width>91</width>
- <height>41</height>
- </rect>
- </property>
- <property name="font">
- <font>
- <family>AlArabiya</family>
- <pointsize>20</pointsize>
- </font>
- </property>
- <property name="text">
- <string>Score:</string>
- </property>
- </widget>
- <widget class="QLabel" name="scoreLabel">
- <property name="geometry">
- <rect>
- <x>640</x>
- <y>0</y>
- <width>111</width>
- <height>41</height>
- </rect>
- </property>
- <property name="font">
- <font>
- <family>AlArabiya</family>
- <pointsize>20</pointsize>
- </font>
- </property>
- <property name="text">
- <string/>
- </property>
- </widget>
- <widget class="QLabel" name="levelLabel">
- <property name="geometry">
- <rect>
- <x>90</x>
+ <x>0</x>
<y>0</y>
- <width>51</width>
- <height>41</height>
+ <width>800</width>
+ <height>430</height>
</rect>
</property>
- <property name="font">
- <font>
- <family>AlArabiya</family>
- <pointsize>20</pointsize>
- </font>
- </property>
- <property name="text">
+ <property name="styleSheet">
<string/>
</property>
+ <zorder>collectionWidget</zorder>
</widget>
- <widget class="QWidget" name="startWidget" native="true">
+ <widget class="QWidget" name="collectionWidget" native="true">
<property name="enabled">
<bool>true</bool>
</property>
<string/>
</property>
</widget>
- <widget class="QWidget" name="collectionWidget" native="true">
+ <widget class="QWidget" name="gameWidget" native="true">
<property name="enabled">
<bool>true</bool>
</property>
<property name="geometry">
<rect>
- <x>0</x>
- <y>0</y>
+ <x>10</x>
+ <y>10</y>
<width>800</width>
<height>430</height>
</rect>
# Input
HEADERS += game.h
-FORMS += main.ui collections.ui startlevel.ui
+FORMS += main.ui collections.ui startlevel.ui game.ui
SOURCES += game.cpp main.cpp
include("../common.pri")
<bool>false</bool>
</property>
<property name="styleSheet">
- <string>QWidget
-{
- background-color: #15445d;
- color: #9fb2bc;
-}</string>
+ <string/>
</property>
<widget class="QLabel" name="startTitle">
<property name="geometry">