#include "autocookselectionwindow.h" #include "ui_autocookselectionwindow.h" #include #include "autocookwindow.h" AutoCookSelectionWindow::AutoCookSelectionWindow(QWidget *parent, Oven *oven, Cook::CookType type) : QMainWindow(parent), ui(new Ui::AutoCookSelectionWindow), oven(oven), type(type) { ui->setupUi(this); setAttribute(Qt::WA_DeleteOnClose); ui->cookTypeIcon->setPixmap(Cook::icon(type)); switch (type) { case Cook::Poultry: cookList.append(new ChickenCook); break; case Cook::Meat: cookList.append(new MeatPie); break; case Cook::Bread: cookList.append(new Croissant); break; } QSignalMapper *sm = new QSignalMapper(this); connect(sm, SIGNAL(mapped(int)), SLOT(onCookSelected(int))); QFont font; font.setFamily(QStringLiteral("Roboto")); font.setPointSize(10); font.setBold(true); font.setWeight(75); QLatin1String stylesheet("QPushButton {\n" "border-image: url(:/images/images/auto/btn_01.png);\n" "}\n" "QPushButton::pressed {\n" "border-image: url(:/images/images/auto/btn_01_ov.png);\n" "}"); for (int idx = 0; idx < cookList.size(); idx++) { // TODO: make pushbuttons, map buttons to index, int x = 12 + (idx % 3) * 294; int y = 615 + (idx / 3) * 80; QPushButton *pb = new QPushButton(this); pb->setGeometry(QRect(x, y, 288, 70)); pb->setFont(font); pb->setStyleSheet(stylesheet); pb->setText(cookList.at(idx)->name()); sm->setMapping(pb, idx); connect(pb, SIGNAL(clicked()), sm, SLOT(map())); } } AutoCookSelectionWindow::~AutoCookSelectionWindow() { delete ui; foreach (AbstractCook *cook, cookList) delete cook; } void AutoCookSelectionWindow::onCookSelected(int idx) { AutoCookWindow *w = new AutoCookWindow(this, oven, cookList.at(idx)); w->showFullScreen(); } void AutoCookSelectionWindow::on_pushButton_clicked() { AbstractCook *cook; switch (type) { case Cook::Poultry: cook = new ChickenCook; break; case Cook::Meat: cook = new MeatPie; break; case Cook::Bread: cook = new Croissant; break; default: return; } AutoCookWindow *w = new AutoCookWindow(this, oven, cook); w->showFullScreen(); } void AutoCookSelectionWindow::on_backButton_clicked() { close(); }