Mon, 21 Mar 2022 11:44:51 +0100
Status and Windowtitle messages via signals and slots. Global setup now on the mainwindow.
src/InventoryFermentables.cpp | file | annotate | diff | comparison | revisions | |
src/InventoryFermentables.h | file | annotate | diff | comparison | revisions | |
src/MainWindow.cpp | file | annotate | diff | comparison | revisions | |
src/MainWindow.h | file | annotate | diff | comparison | revisions | |
src/Setup.cpp | file | annotate | diff | comparison | revisions | |
src/Setup.h | file | annotate | diff | comparison | revisions | |
ui/Setup.ui | file | annotate | diff | comparison | revisions |
--- a/src/InventoryFermentables.cpp Sun Mar 20 21:39:06 2022 +0100 +++ b/src/InventoryFermentables.cpp Mon Mar 21 11:44:51 2022 +0100 @@ -88,6 +88,7 @@ connect(insertButton, SIGNAL(clicked()), this, SLOT(on_insertButton_clicked())); connect(exportButton, SIGNAL(clicked()), this, SLOT(on_exportButton_clicked())); // connect(importButton, SIGNAL(clicked()), this, SLOT(on_importButton_clicked())); + connect(this, SIGNAL(setStatus(QString)), parent, SLOT(statusMsg(QString))); emit refreshTable(); } @@ -117,7 +118,6 @@ this->tableFermentables->setRowCount(query.size()); this->tableFermentables->setHorizontalHeaderLabels(labels); this->tableFermentables->verticalHeader()->hide(); - //ui->tableFermentables->setFixedSize(1050 + 24, 640); /* Even if this is too large, it works */ QTableWidgetItem *rightitem = new QTableWidgetItem(); rightitem->setTextAlignment(Qt::AlignRight); @@ -162,8 +162,7 @@ this->tableFermentables->setCellWidget(ridx, 8, pWidget); query.next(); } - - setWindowTitle( QString("BMSapp - %1 - Inventory Fermentables").arg(VERSIONSTRING) ); + emit setStatus(QString("Records: %1").arg(query.size())); }
--- a/src/InventoryFermentables.h Sun Mar 20 21:39:06 2022 +0100 +++ b/src/InventoryFermentables.h Mon Mar 21 11:44:51 2022 +0100 @@ -21,6 +21,9 @@ explicit InventoryFermentables(QWidget *parent = nullptr); ~InventoryFermentables(); +signals: + void setStatus(QString); + private slots: void on_insertButton_clicked(); void on_editButton_clicked();
--- a/src/MainWindow.cpp Sun Mar 20 21:39:06 2022 +0100 +++ b/src/MainWindow.cpp Mon Mar 21 11:44:51 2022 +0100 @@ -97,6 +97,7 @@ delete InventoryFermentablesWindow; setWindowTitle( QString("BMSapp - %1").arg(VERSIONSTRING) ); ui->menuBar->setVisible(true); + statusBar()->clearMessage(); } @@ -337,8 +338,11 @@ void MainWindow::fromSetup() { qDebug() << Q_FUNC_INFO; + ui->mainStack->setCurrentIndex(-1); + ui->mainStack->removeWidget(SetupWindow); delete SetupWindow; - this->show(); + setWindowTitle( QString("BMSapp - %1").arg(VERSIONSTRING) ); + ui->menuBar->setVisible(true); } @@ -346,9 +350,10 @@ { qDebug() << Q_FUNC_INFO; SetupWindow = new Setup(this); - QObject::connect(SetupWindow, SIGNAL(firstWindow()), this, SLOT(fromSetup())); - this->hide(); // Close the main window - SetupWindow->show(); // Show a setup window + int index = ui->mainStack->count(); + ui->mainStack->addWidget(SetupWindow); + ui->mainStack->setCurrentIndex(index); + ui->menuBar->setVisible(false); } @@ -360,3 +365,16 @@ } +void MainWindow::windowTitle(QString msg) +{ + qDebug() << Q_FUNC_INFO << msg; + setWindowTitle(QString("BMSapp - %1 - %2").arg(VERSIONSTRING).arg(msg)); +} + + +void MainWindow::statusMsg(QString msg) +{ + qDebug() << Q_FUNC_INFO << msg; + statusBar()->showMessage(msg); +} +
--- a/src/MainWindow.h Sun Mar 20 21:39:06 2022 +0100 +++ b/src/MainWindow.h Mon Mar 21 11:44:51 2022 +0100 @@ -76,6 +76,8 @@ void fromProfileStyles(); void fromProfileFerments(); void fromSetup(); + void windowTitle(QString); + void statusMsg(QString); private: Ui::MainWindow *ui;
--- a/src/Setup.cpp Sun Mar 20 21:39:06 2022 +0100 +++ b/src/Setup.cpp Mon Mar 21 11:44:51 2022 +0100 @@ -15,106 +15,364 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ #include "Setup.h" -#include "../ui/ui_Setup.h" #include "config.h" #include "bmsapp.h" -Setup::Setup(QWidget *parent) : QDialog(parent), ui(new Ui::Setup) +Setup::Setup(QWidget *parent) : QDialog(parent) { QSqlQuery query; + QGridLayout *gridLayout; + QWidget *topWidget; + QFrame *line; qDebug() << "Setup start"; - ui->setupUi(this); - setWindowTitle( QString("BMSapp - %1 - Setup").arg(VERSIONSTRING) ); + + gridLayout = new QGridLayout(this); + gridLayout->setObjectName(QString::fromUtf8("gridLayout")); + topWidget = new QWidget(this); + topWidget->setObjectName(QString::fromUtf8("topWidget")); + + breweryLabel = new QLabel(topWidget); + breweryLabel->setObjectName(QString::fromUtf8("breweryLabel")); + breweryLabel->setGeometry(QRect(60, 20, 131, 20)); + breweryLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + breweryLabel->setText(tr("Brewery name:")); + breweryEdit = new QLineEdit(topWidget); + breweryEdit->setObjectName(QString::fromUtf8("breweryEdit")); + breweryEdit->setGeometry(QRect(212, 20, 941, 23)); + breweryEdit->setToolTip(tr("The name for this brewery.")); + + line = new QFrame(topWidget); + line->setObjectName(QString::fromUtf8("line")); + line->setGeometry(QRect(0, 60, 1251, 20)); + line->setFrameShape(QFrame::HLine); + line->setFrameShadow(QFrame::Sunken); + + fwhLabel = new QLabel(topWidget); + fwhLabel->setObjectName(QString::fromUtf8("fwhLabel")); + fwhLabel->setGeometry(QRect(60, 120, 131, 20)); + fwhLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + fwhLabel->setText(tr("First Wort Hop factor:")); + + mashhopLabel = new QLabel(topWidget); + mashhopLabel->setObjectName(QString::fromUtf8("mashhopLabel")); + mashhopLabel->setGeometry(QRect(60, 150, 131, 20)); + mashhopLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + mashhopLabel->setText(tr("Mash Hop factor:")); + + pelletLabel = new QLabel(topWidget); + pelletLabel->setObjectName(QString::fromUtf8("pelletLabel")); + pelletLabel->setGeometry(QRect(60, 180, 131, 20)); + pelletLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + pelletLabel->setText(tr("Pellet Hop factor:")); + + hopplugLabel = new QLabel(topWidget); + hopplugLabel->setObjectName(QString::fromUtf8("hopplugLabel")); + hopplugLabel->setGeometry(QRect(60, 210, 131, 20)); + hopplugLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + hopplugLabel->setText(tr("Hop Plugs factor:")); + + wethopLabel = new QLabel(topWidget); + wethopLabel->setObjectName(QString::fromUtf8("wethopLabel")); + wethopLabel->setGeometry(QRect(60, 240, 131, 20)); + wethopLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + wethopLabel->setText(tr("Wet Hop factor:")); + + cryohopLabel = new QLabel(topWidget); + cryohopLabel->setObjectName(QString::fromUtf8("cryohopLabel")); + cryohopLabel->setGeometry(QRect(60, 270, 131, 20)); + cryohopLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + cryohopLabel->setText(tr("Cryo Hop\302\256 factor:")); + + fwhEdit = new QSpinBox(topWidget); + fwhEdit->setObjectName(QString::fromUtf8("fwhEdit")); + fwhEdit->setGeometry(QRect(210, 120, 81, 24)); + fwhEdit->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + fwhEdit->setAccelerated(true); + fwhEdit->setMinimum(-50); + fwhEdit->setMaximum(50); + fwhEdit->setToolTip(tr("The efficiency for First Wort Hopping.")); + fwhEdit->setSuffix(tr("%")); + + mashhopEdit = new QSpinBox(topWidget); + mashhopEdit->setObjectName(QString::fromUtf8("mashhopEdit")); + mashhopEdit->setGeometry(QRect(210, 150, 81, 24)); + mashhopEdit->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + mashhopEdit->setAccelerated(true); + mashhopEdit->setMinimum(-50); + mashhopEdit->setMaximum(50); + mashhopEdit->setToolTip(tr("The efficiency for Mash hopping.")); + mashhopEdit->setSuffix(tr("%")); + + pelletEdit = new QSpinBox(topWidget); + pelletEdit->setObjectName(QString::fromUtf8("pelletEdit")); + pelletEdit->setGeometry(QRect(210, 180, 81, 24)); + pelletEdit->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + pelletEdit->setAccelerated(true); + pelletEdit->setMinimum(0); + pelletEdit->setMaximum(20); + pelletEdit->setToolTip(tr("The efficiency for hop pellets.")); + pelletEdit->setSuffix(tr("%")); + + hopplugEdit = new QSpinBox(topWidget); + hopplugEdit->setObjectName(QString::fromUtf8("hopplugEdit")); + hopplugEdit->setGeometry(QRect(210, 210, 81, 24)); + hopplugEdit->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + hopplugEdit->setAccelerated(true); + hopplugEdit->setMaximum(20); + hopplugEdit->setToolTip(tr("The efficiency for hop plugs.")); + hopplugEdit->setSuffix(tr("%")); + + wethopEdit = new QSpinBox(topWidget); + wethopEdit->setObjectName(QString::fromUtf8("wethopEdit")); + wethopEdit->setGeometry(QRect(210, 240, 81, 24)); + wethopEdit->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + wethopEdit->setAccelerated(true); + wethopEdit->setMinimum(-98); + wethopEdit->setMaximum(-20); + wethopEdit->setToolTip(tr("The efficiency for fresh hops.")); + wethopEdit->setSuffix(tr("%")); + + cryohopEdit = new QSpinBox(topWidget); + cryohopEdit->setObjectName(QString::fromUtf8("cryohopEdit")); + cryohopEdit->setGeometry(QRect(210, 270, 81, 24)); + cryohopEdit->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + cryohopEdit->setAccelerated(true); + cryohopEdit->setMinimum(-20); + cryohopEdit->setMaximum(150); + cryohopEdit->setToolTip(tr("The efficiency for using Cryo Hop\302\256.")); + cryohopEdit->setSuffix(tr("%")); + + grainLabel = new QLabel(topWidget); + grainLabel->setObjectName(QString::fromUtf8("grainLabel")); + grainLabel->setGeometry(QRect(400, 120, 161, 20)); + grainLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + grainLabel->setText(tr("Grain Absorbtion:")); + + brixLabel = new QLabel(topWidget); + brixLabel->setObjectName(QString::fromUtf8("brixLabel")); + brixLabel->setGeometry(QRect(400, 150, 161, 20)); + brixLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + brixLabel->setText(tr("Brix Correction factor:")); + + titleLabel = new QLabel(topWidget); + titleLabel->setObjectName(QString::fromUtf8("titleLabel")); + titleLabel->setGeometry(QRect(5, 80, 1251, 20)); + QFont font; + font.setFamily(QString::fromUtf8("DejaVu Sans")); + font.setPointSize(12); + font.setBold(true); + font.setWeight(75); + titleLabel->setFont(font); + titleLabel->setAlignment(Qt::AlignCenter); + titleLabel->setText(tr("Brew settings.")); + + colorLabel = new QLabel(topWidget); + colorLabel->setObjectName(QString::fromUtf8("colorLabel")); + colorLabel->setGeometry(QRect(800, 120, 121, 16)); + colorLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + colorLabel->setText(tr("Color Calculation:")); + + ibuLabel = new QLabel(topWidget); + ibuLabel->setObjectName(QString::fromUtf8("ibuLabel")); + ibuLabel->setGeometry(QRect(800, 150, 121, 16)); + ibuLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + ibuLabel->setText(tr("IBU Calculation:")); + + waterLabel = new QLabel(topWidget); + waterLabel->setObjectName(QString::fromUtf8("waterLabel")); + waterLabel->setGeometry(QRect(800, 180, 121, 16)); + waterLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + waterLabel->setText(tr("Default Water:")); + + yeastLabel = new QLabel(topWidget); + yeastLabel->setObjectName(QString::fromUtf8("yeastLabel")); + yeastLabel->setGeometry(QRect(800, 210, 121, 16)); + yeastLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + yeastLabel->setText(tr("Private Yeast bank:")); + + grainEdit = new QDoubleSpinBox(topWidget); + grainEdit->setObjectName(QString::fromUtf8("grainEdit")); + grainEdit->setGeometry(QRect(580, 120, 101, 24)); + grainEdit->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + grainEdit->setAccelerated(true); + grainEdit->setMinimum(0.500000000000000); + grainEdit->setMaximum(1.100000000000000); + grainEdit->setSingleStep(0.010000000000000); + grainEdit->setStepType(QAbstractSpinBox::DefaultStepType); + grainEdit->setValue(1.000000000000000); + grainEdit->setToolTip(tr("Absorbtion with water by the grain (L/Kg)")); + grainEdit->setSuffix(tr(" L/Kg")); + + brixEdit = new QDoubleSpinBox(topWidget); + brixEdit->setObjectName(QString::fromUtf8("brixEdit")); + brixEdit->setGeometry(QRect(580, 150, 101, 24)); + brixEdit->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + brixEdit->setAccelerated(true); + brixEdit->setMinimum(1.000000000000000); + brixEdit->setMaximum(1.090000000000000); + brixEdit->setSingleStep(0.010000000000000); + brixEdit->setStepType(QAbstractSpinBox::DefaultStepType); + brixEdit->setValue(1.000000000000000); + brixEdit->setToolTip(tr("Plato to Brix conversion factor.")); + + colorEdit = new QComboBox(topWidget); + colorEdit->setObjectName(QString::fromUtf8("colorEdit")); + colorEdit->setGeometry(QRect(940, 120, 161, 23)); + colorEdit->setMinimumContentsLength(4); + colorEdit->setIconSize(QSize(0, 0)); + colorEdit->setCurrentText(QString()); + colorEdit->setPlaceholderText(tr("Choose color")); + + ibuEdit = new QComboBox(topWidget); + ibuEdit->setObjectName(QString::fromUtf8("ibuEdit")); + ibuEdit->setGeometry(QRect(940, 150, 161, 23)); + ibuEdit->setMinimumContentsLength(4); + ibuEdit->setIconSize(QSize(0, 0)); + ibuEdit->setCurrentText(QString()); + ibuEdit->setPlaceholderText(tr("Choose color")); + + waterEdit = new QComboBox(topWidget); + waterEdit->setObjectName(QString::fromUtf8("waterEdit")); + waterEdit->setGeometry(QRect(940, 180, 211, 23)); + waterEdit->setMinimumContentsLength(4); + waterEdit->setIconSize(QSize(0, 0)); + waterEdit->setCurrentText(QString()); + waterEdit->setPlaceholderText(tr("Choose color")); + + yeastEdit = new QComboBox(topWidget); + yeastEdit->setObjectName(QString::fromUtf8("yeastEdit")); + yeastEdit->setGeometry(QRect(940, 210, 211, 23)); + yeastEdit->setMinimumContentsLength(4); + yeastEdit->setIconSize(QSize(0, 0)); + yeastEdit->setCurrentText(QString()); + yeastEdit->setPlaceholderText(tr("Choose color")); + + logoLabel = new QLabel(topWidget); + logoLabel->setObjectName(QString::fromUtf8("logoLabel")); + logoLabel->setGeometry(QRect(940, 260, 211, 211)); + logoLabel->setAlignment(Qt::AlignCenter); + logoLabel->setText(tr("Logo here")); + + quitButton = new QPushButton(topWidget); + quitButton->setObjectName(QString::fromUtf8("quitButton")); + quitButton->setGeometry(QRect(50, 520, 80, 23)); + QIcon icon; + icon.addFile(QString::fromUtf8(":icons/silk/door_out.png"), QSize(), QIcon::Normal, QIcon::Off); + quitButton->setIcon(icon); + quitButton->setText(tr("Quit")); + + saveButton = new QPushButton(topWidget); + saveButton->setObjectName(QString::fromUtf8("saveButton")); + saveButton->setGeometry(QRect(200, 520, 80, 23)); + QIcon icon1; + icon1.addFile(QString::fromUtf8(":icons/silk/disk.png"), QSize(), QIcon::Normal, QIcon::Off); + saveButton->setIcon(icon1); + saveButton->setText(tr("Save")); + saveButton->setEnabled(false); + + openButton = new QPushButton(topWidget); + openButton->setObjectName(QString::fromUtf8("openButton")); + openButton->setGeometry(QRect(810, 260, 111, 23)); + QIcon icon2; + icon2.addFile(QString::fromUtf8(":/icons/silk/folder_picture.png"), QSize(), QIcon::Normal, QIcon::Off); + openButton->setIcon(icon2); + openButton->setText(tr("Load logo")); + + gridLayout->addWidget(topWidget, 0, 0, 1, 1); + + connect(quitButton, SIGNAL(clicked()), this, SLOT(on_quitButton_clicked())); + connect(saveButton, SIGNAL(clicked()), this, SLOT(on_saveButton_clicked())); + connect(openButton, SIGNAL(clicked()), this, SLOT(on_openButton_clicked())); + connect(this, SIGNAL(firstWindow()), parent, SLOT(fromSetup())); + connect(this, SIGNAL(setTitle(QString)), parent, SLOT(windowTitle(QString))); + + emit setTitle(QString(tr("Setup"))); query.prepare("SELECT * FROM profile_setup WHERE record='1'"); query.exec(); query.next(); - ui->breweryEdit->setText(query.value(1).toString()); // max 128 - connect(ui->breweryEdit, &QLineEdit::textChanged, this, &Setup::is_changed); + breweryEdit->setText(query.value(1).toString()); // max 128 + connect(breweryEdit, &QLineEdit::textChanged, this, &Setup::is_changed); - ui->fwhEdit->setValue(query.value(4).toInt()); - ui->mashhopEdit->setValue(query.value(3).toInt()); - ui->pelletEdit->setValue(query.value(5).toInt()); - ui->hopplugEdit->setValue(query.value(6).toInt()); - ui->wethopEdit->setValue(query.value(7).toInt()); - ui->cryohopEdit->setValue(query.value(8).toInt()); - connect(ui->fwhEdit, &QSpinBox::textChanged, this, &Setup::is_changed); - connect(ui->mashhopEdit, &QSpinBox::textChanged, this, &Setup::is_changed); - connect(ui->pelletEdit, &QSpinBox::textChanged, this, &Setup::is_changed); - connect(ui->hopplugEdit, &QSpinBox::textChanged, this, &Setup::is_changed); - connect(ui->wethopEdit, &QSpinBox::textChanged, this, &Setup::is_changed); - connect(ui->cryohopEdit, &QSpinBox::textChanged, this, &Setup::is_changed); + fwhEdit->setValue(query.value(4).toInt()); + mashhopEdit->setValue(query.value(3).toInt()); + pelletEdit->setValue(query.value(5).toInt()); + hopplugEdit->setValue(query.value(6).toInt()); + wethopEdit->setValue(query.value(7).toInt()); + cryohopEdit->setValue(query.value(8).toInt()); + connect(fwhEdit, &QSpinBox::textChanged, this, &Setup::is_changed); + connect(mashhopEdit, &QSpinBox::textChanged, this, &Setup::is_changed); + connect(pelletEdit, &QSpinBox::textChanged, this, &Setup::is_changed); + connect(hopplugEdit, &QSpinBox::textChanged, this, &Setup::is_changed); + connect(wethopEdit, &QSpinBox::textChanged, this, &Setup::is_changed); + connect(cryohopEdit, &QSpinBox::textChanged, this, &Setup::is_changed); - ui->grainEdit->setValue(query.value(12).toDouble()); - ui->brixEdit->setValue(query.value(11).toDouble()); - connect(ui->grainEdit, &QDoubleSpinBox::textChanged, this, &Setup::is_changed); - connect(ui->brixEdit, &QDoubleSpinBox::textChanged, this, &Setup::is_changed); + grainEdit->setValue(query.value(12).toDouble()); + brixEdit->setValue(query.value(11).toDouble()); + connect(grainEdit, &QDoubleSpinBox::textChanged, this, &Setup::is_changed); + connect(brixEdit, &QDoubleSpinBox::textChanged, this, &Setup::is_changed); - ui->colorEdit->addItem("Morey"); - ui->colorEdit->addItem("Mosher"); - ui->colorEdit->addItem("Daniels"); - ui->colorEdit->addItem("Halberstadt"); - ui->colorEdit->addItem("Naudts"); - ui->colorEdit->setEditable(true); - ui->colorEdit->setCurrentIndex(query.value(10).toInt()); - connect(ui->colorEdit, &QComboBox::currentTextChanged, this, &Setup::is_changed); + colorEdit->addItem("Morey"); + colorEdit->addItem("Mosher"); + colorEdit->addItem("Daniels"); + colorEdit->addItem("Halberstadt"); + colorEdit->addItem("Naudts"); + colorEdit->setEditable(true); + colorEdit->setCurrentIndex(query.value(10).toInt()); + connect(colorEdit, &QComboBox::currentTextChanged, this, &Setup::is_changed); - ui->ibuEdit->addItem("Tinseth"); - ui->ibuEdit->addItem("Rager"); - ui->ibuEdit->addItem("Daniels"); - ui->ibuEdit->setEditable(true); - ui->ibuEdit->setCurrentIndex(query.value(9).toInt()); - connect(ui->ibuEdit, &QComboBox::currentTextChanged, this, &Setup::is_changed); + ibuEdit->addItem("Tinseth"); + ibuEdit->addItem("Rager"); + ibuEdit->addItem("Daniels"); + ibuEdit->setEditable(true); + ibuEdit->setCurrentIndex(query.value(9).toInt()); + connect(ibuEdit, &QComboBox::currentTextChanged, this, &Setup::is_changed); QSqlQuery query2("SELECT record,name FROM inventory_waters"); query2.first(); int pos = -1; - ui->waterEdit->setEditable(true); - ui->waterEdit->setPlaceholderText(tr("Choose default water")); + waterEdit->setEditable(true); + waterEdit->setPlaceholderText(tr("Choose default water")); for (int i = 0 ; i < query2.size() ; i++ ) { - ui->waterEdit->addItem(query2.value(1).toString()); + waterEdit->addItem(query2.value(1).toString()); if (query2.value(0).toInt() == query.value(13).toInt()) { pos = i; } query2.next(); } if (pos >= 0) - ui->waterEdit->setCurrentIndex(pos); - connect(ui->waterEdit, &QComboBox::currentTextChanged, this, &Setup::is_changed); + waterEdit->setCurrentIndex(pos); + connect(waterEdit, &QComboBox::currentTextChanged, this, &Setup::is_changed); QSqlQuery query3("SELECT DISTINCT laboratory FROM inventory_yeasts ORDER BY laboratory"); query3.first(); pos = -1; - ui->yeastEdit->setEditable(true); - ui->yeastEdit->setPlaceholderText(tr("Choose laboratory")); + yeastEdit->setEditable(true); + yeastEdit->setPlaceholderText(tr("Choose laboratory")); for (int i = 0 ; i < query3.size() ; i++ ) { - ui->yeastEdit->addItem(query3.value(0).toString()); + yeastEdit->addItem(query3.value(0).toString()); if (QString::compare(query.value(14).toString(), query3.value(0).toString(), Qt::CaseSensitive) == 0) pos = i; query3.next(); } if (pos >= 0) - ui->yeastEdit->setCurrentIndex(pos); - connect(ui->yeastEdit, &QComboBox::currentTextChanged, this, &Setup::is_changed); + yeastEdit->setCurrentIndex(pos); + connect(yeastEdit, &QComboBox::currentTextChanged, this, &Setup::is_changed); /* logo */ logoByteArray = query.value(2).toByteArray(); QPixmap outPixmap = QPixmap(); outPixmap.loadFromData(logoByteArray); - ui->logoLabel->setPixmap(outPixmap); - ui->logoLabel->adjustSize(); + logoLabel->setPixmap(outPixmap); + logoLabel->adjustSize(); } -Setup::~Setup() -{ - qDebug() << "Setup done"; - delete ui; -} +Setup::~Setup() {} bool Setup::loadFile(const QString &fileName) @@ -144,11 +402,11 @@ buffer.open(QIODevice::WriteOnly); image.save(&buffer, "PNG"); // writes image into logoByteArray in PNG format - ui->logoLabel->setPixmap(QPixmap::fromImage(image)); + this->logoLabel->setPixmap(QPixmap::fromImage(image)); scaleFactor = 1.0; -// ui->logoLabel->resize(scaleFactor * ui->logoLabel->pixmap(Qt::ReturnByValue).size()); - ui->logoLabel->adjustSize(); +// this->logoLabel->resize(scaleFactor * ui->logoLabel->pixmap(Qt::ReturnByValue).size()); + this->logoLabel->adjustSize(); } @@ -187,7 +445,7 @@ * Search record number of the current water. */ query.prepare("SELECT record FROM inventory_waters WHERE name=:name"); - query.bindValue(":name", ui->waterEdit->currentText()); + query.bindValue(":name", this->waterEdit->currentText()); query.exec(); query.first(); int record = query.value(0).toInt(); @@ -198,20 +456,20 @@ query.prepare("UPDATE profile_setup SET brewery_name=:brewery, brewery_logo=:logo, factor_mashhop=:mashhop, factor_fwh=:fwh, " "factor_pellet=:pellet, factor_plug=:plug, factor_wethop=:wet, factor_cryohop=:cryo, color_method=:color, ibu_method=:ibu, " "brix_correction=:brix, grain_absorbtion=:grain, default_water=:water, my_yeastlab=:yeast WHERE record='1'"); - query.bindValue(":brewery", ui->breweryEdit->text()); + query.bindValue(":brewery", this->breweryEdit->text()); query.bindValue(":logo", logoByteArray); - query.bindValue(":mashhop", ui->mashhopEdit->value()); - query.bindValue(":fwh", ui->fwhEdit->value()); - query.bindValue(":pellet", ui->pelletEdit->value()); - query.bindValue(":plug", ui->hopplugEdit->value()); - query.bindValue(":wet", ui->wethopEdit->value()); - query.bindValue(":cryo", ui->cryohopEdit->value()); - query.bindValue(":color", ui->colorEdit->currentIndex()); - query.bindValue(":ibu", ui->ibuEdit->currentIndex()); - query.bindValue(":brix", ui->brixEdit->value()); - query.bindValue(":grain", ui->grainEdit->value()); + query.bindValue(":mashhop", this->mashhopEdit->value()); + query.bindValue(":fwh", this->fwhEdit->value()); + query.bindValue(":pellet", this->pelletEdit->value()); + query.bindValue(":plug", this->hopplugEdit->value()); + query.bindValue(":wet", this->wethopEdit->value()); + query.bindValue(":cryo", this->cryohopEdit->value()); + query.bindValue(":color", this->colorEdit->currentIndex()); + query.bindValue(":ibu", this->ibuEdit->currentIndex()); + query.bindValue(":brix", this->brixEdit->value()); + query.bindValue(":grain", this->grainEdit->value()); query.bindValue(":water", record); - query.bindValue(":yeast", ui->yeastEdit->currentText()); + query.bindValue(":yeast", this->yeastEdit->currentText()); query.exec(); if (query.lastError().isValid()) { qDebug() << "Setup Save error:" << query.lastError(); @@ -225,7 +483,8 @@ } this->fieldIsChanged = false; - setWindowTitle( QString("BMSapp - %1 - Setup").arg(VERSIONSTRING) ); + saveButton->setEnabled(false); + emit setTitle(QString(tr("Setup"))); } @@ -250,6 +509,7 @@ void Setup::is_changed() { + saveButton->setEnabled(true); this->fieldIsChanged = true; - setWindowTitle( QString("BMSapp - %1 - Setup **").arg(VERSIONSTRING) ); + emit setTitle(QString(tr("Setup") + " **")); }
--- a/src/Setup.h Sun Mar 20 21:39:06 2022 +0100 +++ b/src/Setup.h Mon Mar 21 11:44:51 2022 +0100 @@ -3,6 +3,18 @@ #include <QDialog> #include <QFileDialog> +#include <QtGui/QIcon> +#include <QtWidgets/QApplication> +#include <QtWidgets/QComboBox> +#include <QtWidgets/QDialog> +#include <QtWidgets/QDoubleSpinBox> +#include <QtWidgets/QFrame> +#include <QtWidgets/QGridLayout> +#include <QtWidgets/QLabel> +#include <QtWidgets/QLineEdit> +#include <QtWidgets/QPushButton> +#include <QtWidgets/QSpinBox> +#include <QtWidgets/QWidget> QT_BEGIN_NAMESPACE class QLabel; @@ -23,6 +35,7 @@ signals: void firstWindow(); + void setTitle(QString); private slots: void on_openButton_clicked(); @@ -31,9 +44,42 @@ void is_changed(); private: - Ui::Setup *ui; QByteArray logoByteArray; QImage image; + QLabel *logoLabel; + QLabel *breweryLabel; + QLabel *fwhLabel; + QLabel *mashhopLabel; + QLabel *pelletLabel; + QLabel *hopplugLabel; + QLabel *wethopLabel; + QLabel *cryohopLabel; + QLabel *grainLabel; + QLabel *brixLabel; + QLabel *titleLabel; + QLabel *colorLabel; + QLabel *ibuLabel; + QLabel *waterLabel; + QLabel *yeastLabel; + + QLineEdit *breweryEdit; + + QSpinBox *fwhEdit; + QSpinBox *mashhopEdit; + QSpinBox *pelletEdit; + QSpinBox *hopplugEdit; + QSpinBox *wethopEdit; + QSpinBox *cryohopEdit; + QComboBox *waterEdit; + QDoubleSpinBox *grainEdit; + QDoubleSpinBox *brixEdit; + QComboBox *colorEdit; + QComboBox *ibuEdit; + QComboBox *yeastEdit; + QPushButton *quitButton; + QPushButton *saveButton; + QPushButton *openButton; + double scaleFactor = 1; void setImage(const QImage &newImage);
--- a/ui/Setup.ui Sun Mar 20 21:39:06 2022 +0100 +++ b/ui/Setup.ui Mon Mar 21 11:44:51 2022 +0100 @@ -630,7 +630,7 @@ <property name="geometry"> <rect> <x>50</x> - <y>590</y> + <y>520</y> <width>80</width> <height>23</height> </rect> @@ -646,8 +646,8 @@ <widget class="QPushButton" name="saveButton"> <property name="geometry"> <rect> - <x>1130</x> - <y>590</y> + <x>200</x> + <y>520</y> <width>80</width> <height>23</height> </rect>