1 #include <QtGui/QGraphicsView>
2 #include <QtGui/QHBoxLayout>
3 #include <QtGui/QLabel>
4 #include <QtGui/QLineEdit>
5 #include <QtGui/QMessageBox>
6 #include <QtGui/QPushButton>
7 #include <QtGui/QVBoxLayout>
9 #include "mainwidget.h"
11 class MainWidgetPrivate
14 MainWidgetPrivate(MainWidget *widget) : widget_(widget)
21 QGraphicsView *graphicsView_;
22 QLineEdit *columnEdit_;
24 QPushButton *startButton_;
29 widget_->setWindowTitle(QObject::tr("Flip"));
31 QHBoxLayout *layout = new QHBoxLayout(widget_);
32 layout->setAlignment(Qt::AlignCenter);
34 QVBoxLayout *leftLayout = new QVBoxLayout;
35 layout->addLayout(leftLayout);
36 leftLayout->addWidget(new QLabel(QObject::tr("Columns (2-9):")));
37 columnEdit_ = new QLineEdit;
38 columnEdit_->setInputMask("D");
39 leftLayout->addWidget(columnEdit_);
40 leftLayout->addWidget(new QLabel(QObject::tr("Rows (2-9):")));
41 rowEdit_ = new QLineEdit;
42 rowEdit_->setInputMask("D");
43 leftLayout->addWidget(rowEdit_);
44 startButton_ = new QPushButton(QObject::tr("Start"));
45 leftLayout->addWidget(startButton_);
47 scene_ = new FlipScene(widget_);
48 graphicsView_ = new QGraphicsView(scene_);
49 layout->addWidget(graphicsView_);
53 MainWidget::MainWidget(QWidget *parent) :
55 d_(new MainWidgetPrivate(this))
57 connect(d_->startButton_, SIGNAL(clicked()), this, SLOT(startGame()));
58 connect(d_->scene_, SIGNAL(win(int)), this, SLOT(winGame(int)));
60 d_->columnEdit_->setText("5");
61 d_->rowEdit_->setText("5");
65 MainWidget::~MainWidget()
70 void MainWidget::startGame()
72 d_->scene_->setBoard(d_->columnEdit_->text().toInt(), d_->rowEdit_->text().toInt());
75 void MainWidget::winGame(int clicks)
77 QMessageBox::information(NULL, tr("You Win!"),
78 tr(QString().sprintf("Congratulations! You made it with only %d clicks!", clicks).toLocal8Bit().data()));