#include "mainwindow.h" #include "ui_mainwindow.h" extern std::unique_ptr settings; // slots void MainWindow::buttonPressed(QPushButton *button) { QString text = "\u2605"; button->setText(text); } void MainWindow::newGame() { initialiseGame(); } // initialisation functions void MainWindow::initialiseGame() { game->initialiseGameMatrix(rows, columns); initialiseGameGrid(); ui->lcdScore->display(0); } void MainWindow::initialiseGameGrid() { QSize button_size(max_width/columns, max_height/rows); for(int i = 0; i < columns; i++) { for(int j = 0; j < rows; j++) { QPushButton * button = new QPushButton(this); button->setFixedSize(button_size); button->setStyleSheet("background-color: " + game->getCell(i,j) + "; border: none;"); ui->gameGridLayout->addWidget(button, j, i); // Set size text etc. for each button connect(button, &QPushButton::clicked, [=](){ buttonPressed(button); }); } } } void MainWindow::initialiseWindow() { MainWindow::setWindowTitle("ThinkPink | SameGame in PINK by Isifluff"); MainWindow::setWindowIcon(QIcon(":/icons/ThinkPink.png")); } void MainWindow::initialiseMenuBar() { QAction *new_game_action = ui->menuPlay->addAction(QIcon(":/icons/game.png"), "New Game"); connect(new_game_action, SIGNAL(triggered()), this, SLOT(newGame())); ui->menuPlay->addSeparator(); } MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) , rows(settings->value("size/rows", 9).toInt()) , columns(settings->value("size/columns", 9).toInt()) , max_width(800) , max_height(544) { ui->setupUi(this); game = new SameGame(rows, columns); initialiseGame(); initialiseWindow(); initialiseMenuBar(); } MainWindow::~MainWindow() { delete game; delete ui; }