From e1c8ce23c57160a1a7807a89fe661d77011c4cdc Mon Sep 17 00:00:00 2001 From: Trumpet Cynthia Date: Wed, 5 Mar 2025 15:28:08 +0300 Subject: [PATCH] add: connect interface --- src/CMakeLists.txt | 19 ++++- src/view/about_dialog.cpp | 10 +++ src/view/about_dialog.h | 21 ++++++ src/view/add_preset.cpp | 28 +++++++ src/view/add_preset.h | 38 ++++++++++ src/view/delete_preset.cpp | 64 ++++++++++++++++ src/view/delete_preset.h | 35 +++++++++ src/view/edit_preset.cpp | 17 +++++ src/view/edit_preset.h | 21 ++++++ src/view/formula_dialog.cpp | 15 ++++ src/view/formula_dialog.h | 24 ++++++ src/view/main_window.cpp | 73 +++++++++++-------- src/view/main_window.h | 34 ++++++--- src/view/printer_settings.cpp | 30 ++++++++ src/view/printer_settings.h | 70 ++++++++++++++++++ src/view/resources.qrc | 15 ++++ src/view/ui/about.ui | 10 ++- src/view/ui/{add_printer.ui => add_preset.ui} | 6 ++ src/view/ui/del_preset.ui | 6 ++ src/view/ui/edit_preset.ui | 6 ++ src/view/ui/formula.ui | 9 +++ src/view/ui/main_window.ui | 20 ++++- .../ui/{settings.ui => printer_settings.ui} | 10 ++- src/view/ui/settings_preset.ui | 6 ++ src/view/ui/updates.ui | 6 ++ src/view/update_dialog.cpp | 36 +++++++++ src/view/update_dialog.h | 31 ++++++++ 27 files changed, 611 insertions(+), 49 deletions(-) create mode 100644 src/view/about_dialog.cpp create mode 100644 src/view/about_dialog.h create mode 100644 src/view/add_preset.cpp create mode 100644 src/view/add_preset.h create mode 100644 src/view/delete_preset.cpp create mode 100644 src/view/delete_preset.h create mode 100644 src/view/edit_preset.cpp create mode 100644 src/view/edit_preset.h create mode 100644 src/view/formula_dialog.cpp create mode 100644 src/view/formula_dialog.h create mode 100644 src/view/printer_settings.cpp create mode 100644 src/view/printer_settings.h create mode 100644 src/view/resources.qrc rename src/view/ui/{add_printer.ui => add_preset.ui} (98%) rename src/view/ui/{settings.ui => printer_settings.ui} (98%) create mode 100644 src/view/update_dialog.cpp create mode 100644 src/view/update_dialog.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 96be5db..31994d9 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -20,18 +20,25 @@ set(MAIN_SOURCES view/main_window.cpp view/main_window.h + view/about_dialog.cpp + view/formula_dialog.cpp + view/update_dialog.cpp + view/printer_settings.cpp + view/add_preset.cpp + view/delete_preset.cpp + view/edit_preset.cpp + view/ui/about.ui view/ui/main_window.ui view/ui/del_preset.ui view/ui/edit_preset.ui view/ui/formula.ui view/ui/settings_preset.ui - view/ui/settings.ui + view/ui/printer_settings.ui view/ui/updates.ui - view/ui/add_printer.ui + view/ui/add_preset.ui ) - if(${QT_VERSION_MAJOR} GREATER_EQUAL 6) qt_add_executable(Calc3D MANUAL_FINALIZATION @@ -43,6 +50,12 @@ else() ) endif() +qt_add_resources(Calc3D "app_resources" + PREFIX "/" + FILES + view/resources.qrc +) + target_link_libraries(Calc3D PRIVATE Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Core) set_target_properties(Calc3D PROPERTIES diff --git a/src/view/about_dialog.cpp b/src/view/about_dialog.cpp new file mode 100644 index 0000000..fed84f7 --- /dev/null +++ b/src/view/about_dialog.cpp @@ -0,0 +1,10 @@ +#include "about_dialog.h" +#include "ui/ui_about.h" + +AboutDialog::AboutDialog(QWidget *parent) : QDialog(parent), ui(new Ui::About) { + ui->setupUi(this); + + setWindowIcon(QIcon("img/logo-1.png")); +} + +AboutDialog::~AboutDialog() { delete ui; } \ No newline at end of file diff --git a/src/view/about_dialog.h b/src/view/about_dialog.h new file mode 100644 index 0000000..a459901 --- /dev/null +++ b/src/view/about_dialog.h @@ -0,0 +1,21 @@ +#ifndef ABOUTDIALOG_H +#define ABOUTDIALOG_H + +#include + +namespace Ui { +class About; +} + +class AboutDialog : public QDialog { + Q_OBJECT + + public: + explicit AboutDialog(QWidget *parent = nullptr); + ~AboutDialog(); + + private: + Ui::About *ui; +}; + +#endif // ABOUTDIALOG_H \ No newline at end of file diff --git a/src/view/add_preset.cpp b/src/view/add_preset.cpp new file mode 100644 index 0000000..17a7542 --- /dev/null +++ b/src/view/add_preset.cpp @@ -0,0 +1,28 @@ +#include "add_preset.h" + +#include "ui/ui_add_preset.h" + +AddPresetDialog::AddPresetDialog(QWidget *parent) + : QDialog(parent), ui(new Ui::AddPrinter) { + ui->setupUi(this); + setWindowIcon(QIcon("img/logo-1.png")); + // TODO validators + // setupValidators(); + + connect(ui->pushButton, &QPushButton::clicked, this, [this]() { + // TODO save new printer settings + qDebug() << "SAVE SETTINGS"; + }); + connect(ui->pushButton_2, &QPushButton::clicked, this, &QDialog::reject); +} + +AddPresetDialog::~AddPresetDialog() { delete ui; } + +void AddPresetDialog::setupValidators() { + // TODO make validators + qDebug() << "SET VALIDATORS"; + // ui->input_power_3->setValidator(SMTH); // Мощность + // ui->input_power->setValidator(SMTH); // Срок службы + + // ui->input_power_2->setValidator(SMTH); // Стоимость +} \ No newline at end of file diff --git a/src/view/add_preset.h b/src/view/add_preset.h new file mode 100644 index 0000000..ae52f9c --- /dev/null +++ b/src/view/add_preset.h @@ -0,0 +1,38 @@ +#ifndef ADDPRINTERDIALOG_H +#define ADDPRINTERDIALOG_H + +#include +#include +#include + +#include "ui/ui_add_preset.h" + +namespace Ui { +class AddPrinter; +} + +class AddPresetDialog : public QDialog { + Q_OBJECT + + public: + explicit AddPresetDialog(QWidget *parent = nullptr); + ~AddPresetDialog(); + + QString getPresetName() const { return ui->textEdit->toPlainText(); } + + int getPower() const { return ui->input_power_3->toPlainText().toInt(); } + + int getLifespan() const { return ui->input_power->toPlainText().toInt(); } + + double getPrinterCost() const { + return ui->input_power_2->toPlainText().toDouble(); + } + + private: + void setupValidators(); + Ui::AddPrinter *ui; + // QIntValidator *intValidator; + // QDoubleValidator *doubleValidator; +}; + +#endif // ADDPRINTERDIALOG_H \ No newline at end of file diff --git a/src/view/delete_preset.cpp b/src/view/delete_preset.cpp new file mode 100644 index 0000000..a509794 --- /dev/null +++ b/src/view/delete_preset.cpp @@ -0,0 +1,64 @@ +#include "delete_preset.h" +#include "ui/ui_del_preset.h" + +DeletePresetDialog::DeletePresetDialog(QWidget *parent) : + QDialog(parent), + ui(new Ui::DelPreset) +{ + ui->setupUi(this); + setWindowIcon(QIcon("img/logo-1.png")); + + setupTable(); + + connect(ui->pushButton_3, &QPushButton::clicked, this, &DeletePresetDialog::onDeleteClicked); + connect(ui->pushButton, &QPushButton::clicked, this, &DeletePresetDialog::onEditClicked); + connect(ui->pushButton_2, &QPushButton::clicked, this, &QDialog::reject); +} + +DeletePresetDialog::~DeletePresetDialog() { + delete ui; +} + +void DeletePresetDialog::setupTable() { + ui->tableWidget->setColumnCount(2); + ui->tableWidget->setHorizontalHeaderLabels({"Название", "Мощность"}); + ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows); + ui->tableWidget->setSelectionMode(QAbstractItemView::SingleSelection); + ui->tableWidget->horizontalHeader()->setStretchLastSection(true); +} + +void DeletePresetDialog::loadPresets(const QList &data) { + ui->tableWidget->setRowCount(data.size()); + + for(int row = 0; row < data.size(); ++row) { + const QStringList &rowData = data[row]; + for(int col = 0; col < rowData.size(); ++col) { + ui->tableWidget->setItem(row, col, new QTableWidgetItem(rowData[col])); + } + } +} + +QString DeletePresetDialog::getSelectedPreset() const { + const int row = getSelectedRow(); + return row >= 0 ? ui->tableWidget->item(row, 0)->text() : ""; +} + +int DeletePresetDialog::getSelectedRow() const { + return ui->tableWidget->currentRow(); +} + +void DeletePresetDialog::onDeleteClicked() { + const int row = getSelectedRow(); + if(row >= 0) { + emit deleteRequested(row); + ui->tableWidget->removeRow(row); + } +} + +void DeletePresetDialog::onEditClicked() { + const int row = getSelectedRow(); + if(row >= 0) { + emit editRequested(row); + accept(); + } +} \ No newline at end of file diff --git a/src/view/delete_preset.h b/src/view/delete_preset.h new file mode 100644 index 0000000..c56174a --- /dev/null +++ b/src/view/delete_preset.h @@ -0,0 +1,35 @@ +#ifndef DELPRESETDIALOG_H +#define DELPRESETDIALOG_H + +#include +#include + +namespace Ui { +class DelPreset; +} + +class DeletePresetDialog : public QDialog { + Q_OBJECT + + public: + explicit DeletePresetDialog(QWidget *parent = nullptr); + ~DeletePresetDialog(); + + void loadPresets(const QList &data); + QString getSelectedPreset() const; + int getSelectedRow() const; + + signals: + void deleteRequested(int row); + void editRequested(int row); + + private slots: + void onDeleteClicked(); + void onEditClicked(); + + private: + void setupTable(); + Ui::DelPreset *ui; +}; + +#endif // DELPRESETDIALOG_H \ No newline at end of file diff --git a/src/view/edit_preset.cpp b/src/view/edit_preset.cpp new file mode 100644 index 0000000..47225aa --- /dev/null +++ b/src/view/edit_preset.cpp @@ -0,0 +1,17 @@ +#include "edit_preset.h" + +#include "ui/ui_edit_preset.h" + +EditPresetDialog::EditPresetDialog(QWidget *parent) + : QDialog(parent), ui(new Ui::EditPreset) { + ui->setupUi(this); + setWindowIcon(QIcon("img/logo-1.png")); + + connect(ui->pushButton, &QPushButton::clicked, this, [this]() { + // TODO save new printer settings + qDebug() << "SAVE SETTINGS"; + }); + connect(ui->pushButton_2, &QPushButton::clicked, this, &QDialog::reject); +} + +EditPresetDialog::~EditPresetDialog() { delete ui; } diff --git a/src/view/edit_preset.h b/src/view/edit_preset.h new file mode 100644 index 0000000..e4b1faa --- /dev/null +++ b/src/view/edit_preset.h @@ -0,0 +1,21 @@ +#ifndef EDITPRESETDIALOG_H +#define EDITPRESETDIALOG_H + +#include + +namespace Ui { +class EditPreset; +} + +class EditPresetDialog : public QDialog { + Q_OBJECT + +public: + explicit EditPresetDialog(QWidget *parent = nullptr); + ~EditPresetDialog(); + +private: + Ui::EditPreset *ui; +}; + +#endif // EDITPRESETDIALOG_H \ No newline at end of file diff --git a/src/view/formula_dialog.cpp b/src/view/formula_dialog.cpp new file mode 100644 index 0000000..a925e3e --- /dev/null +++ b/src/view/formula_dialog.cpp @@ -0,0 +1,15 @@ +#include "formula_dialog.h" + +#include "ui/ui_formula.h" + +FormulaDialog::FormulaDialog(QWidget *parent) + : QDialog(parent), ui(new Ui::Formula) { + ui->setupUi(this); + setWindowIcon(QIcon("img/logo-1.png")); + + connect(ui->pushButton, &QPushButton::clicked, this, &FormulaDialog::close); +} + +FormulaDialog::~FormulaDialog() { delete ui; } + +void FormulaDialog::on_pushButton_clicked() { close(); } \ No newline at end of file diff --git a/src/view/formula_dialog.h b/src/view/formula_dialog.h new file mode 100644 index 0000000..59d8cde --- /dev/null +++ b/src/view/formula_dialog.h @@ -0,0 +1,24 @@ +#ifndef FORMULADIALOG_H +#define FORMULADIALOG_H + +#include + +namespace Ui { +class Formula; +} + +class FormulaDialog : public QDialog { + Q_OBJECT + + public: + explicit FormulaDialog(QWidget *parent = nullptr); + ~FormulaDialog(); + + private slots: + void on_pushButton_clicked(); + + private: + Ui::Formula *ui; +}; + +#endif // FORMULADIALOG_H \ No newline at end of file diff --git a/src/view/main_window.cpp b/src/view/main_window.cpp index e21cfdf..7f64a88 100644 --- a/src/view/main_window.cpp +++ b/src/view/main_window.cpp @@ -1,40 +1,55 @@ #include "main_window.h" -#include "ui/ui_about.h" -#include "ui/ui_add_printer.h" -#include "ui/ui_del_preset.h" -#include "ui/ui_edit_preset.h" -#include "ui/ui_formula.h" #include "ui/ui_main_window.h" -#include "ui/ui_settings.h" -#include "ui/ui_settings_preset.h" -#include "ui/ui_updates.h" MainWindow::MainWindow(QWidget *parent) - : QMainWindow(parent) - , ui(new Ui::MainWindow) -{ - setWindowTitle("Calc3D"); + : QMainWindow(parent), ui(new Ui::MainWindow) { + ui->setupUi(this); setFixedSize(373, 471); - // menu_window = new MenuWindow(this); - // game_window = new GameWindow(this); - // controller = new s21::GameController(); - // lay_out = new QStackedLayout(this); - // setLayout(lay_out); - // lay_out->addWidget(menu_window); - // lay_out->addWidget(game_window); + progInfo = new AboutDialog(this); + formulaInfo = new FormulaDialog(this); + updateInfo = new UpdatesDialog(this); + printerSettings = new PrinterSettingsDialog(this); + addPresetDialog = new AddPresetDialog(this); + deletePresetDialog = new DeletePresetDialog(this); + editPresetDialog = new EditPresetDialog(this); + // - // menu_window->setFocus(); + // Action with menu "Файл" + connect(ui->settings_2, &QAction::triggered, this, + [this]() { printerSettings->exec(); }); + connect(ui->add_preset, &QAction::triggered, this, + [this]() { addPresetDialog->exec(); }); + connect(ui->edit_printer, &QAction::triggered, this, + [this]() { editPresetDialog->exec(); }); + connect(ui->del_printer, &QAction::triggered, this, + [this]() { deletePresetDialog->exec(); }); + connect(ui->action_3, &QAction::triggered, this, [this]() { + //! smth will be saved? + qDebug() << "SMTH NEEDS TO SAVE?"; + close(); + }); - // connect(menu_window, &MenuWindow::signalGame, this, - // &DesktopView::slotShowGame); connect(menu_window, &MenuWindow::signalExit, - // this, &DesktopView::slotExit); connect(game_window, - // &GameWindow::signalExit, this, &DesktopView::slotShowMenu); - ui->setupUi(this); + // Action with menu "Помощь" + connect(ui->check_update, &QAction::triggered, this, + [this]() { updateInfo->exec(); }); + connect(ui->formula, &QAction::triggered, this, + [this]() { formulaInfo->exec(); }); + connect(ui->about, &QAction::triggered, this, [this]() { progInfo->exec(); }); + + // Action with buttons + connect(ui->get_result_btn, &QPushButton::clicked, this, [this]() { + // TODO отправляет на расчет + qDebug() << "SMTH COUNT"; + }); + connect(ui->exit_btn, &QPushButton::clicked, this, [this]() { + //! smth will be saved? + qDebug() << "SMTH NEEDS TO SAVE?"; + close(); + }); } -MainWindow::~MainWindow() -{ - delete ui; -} +MainWindow::~MainWindow() { delete ui; } \ No newline at end of file diff --git a/src/view/main_window.h b/src/view/main_window.h index f7a3da3..dd60dfe 100644 --- a/src/view/main_window.h +++ b/src/view/main_window.h @@ -2,6 +2,16 @@ #define MAINWINDOW_H #include +#include +#include + +#include "about_dialog.h" +#include "formula_dialog.h" +#include "update_dialog.h" +#include "printer_settings.h" +#include "delete_preset.h" +#include "add_preset.h" +#include "edit_preset.h" QT_BEGIN_NAMESPACE namespace Ui { @@ -9,15 +19,21 @@ class MainWindow; } QT_END_NAMESPACE -class MainWindow : public QMainWindow -{ - Q_OBJECT +class MainWindow : public QMainWindow { + Q_OBJECT -public: - MainWindow(QWidget *parent = nullptr); - ~MainWindow(); + public: + MainWindow(QWidget *parent = nullptr); + ~MainWindow(); -private: - Ui::MainWindow *ui; + private: + Ui::MainWindow *ui; + AboutDialog *progInfo; + FormulaDialog *formulaInfo; + UpdatesDialog *updateInfo; + PrinterSettingsDialog *printerSettings; + AddPresetDialog *addPresetDialog; + DeletePresetDialog *deletePresetDialog; + EditPresetDialog *editPresetDialog; }; -#endif // MAINWINDOW_H +#endif // MAINWINDOW_H diff --git a/src/view/printer_settings.cpp b/src/view/printer_settings.cpp new file mode 100644 index 0000000..bc26659 --- /dev/null +++ b/src/view/printer_settings.cpp @@ -0,0 +1,30 @@ +#include "printer_settings.h" + +#include "ui/ui_printer_settings.h" + +PrinterSettingsDialog::PrinterSettingsDialog(QWidget *parent) + : QDialog(parent), ui(new Ui::PrinterSettingsDialog) { + ui->setupUi(this); + setWindowIcon(QIcon("img/logo-1.png")); + + // TODO валидаторы + // setupValidators(SMTH); + + connect(ui->save, &QPushButton::clicked, this, [this]() { + // TODO save new printer settings + qDebug() << "SAVE SETTINGS"; + }); + connect(ui->exit, &QPushButton::clicked, this, &QDialog::reject); +} + +PrinterSettingsDialog::~PrinterSettingsDialog() { delete ui; } + +void PrinterSettingsDialog::setupValidators() { + // TODO make validators + qDebug() << "SET VALIDATORS"; + + // ui->input_tarif->setValidator(SMTH); + // ui->input_q_trash->setValidator(SMTH); + // ui->input_price_pastik->setValidator(SMTH); + // ui->input_overprice->setValidator(SMTH); +} \ No newline at end of file diff --git a/src/view/printer_settings.h b/src/view/printer_settings.h new file mode 100644 index 0000000..9a56157 --- /dev/null +++ b/src/view/printer_settings.h @@ -0,0 +1,70 @@ +#ifndef PrinterSettingsDialog_H +#define PrinterSettingsDialog_H + +#include +#include + +#include "ui/ui_printer_settings.h" + +namespace Ui { +class PrinterSettingsDialog; +} + +class PrinterSettingsDialog : public QDialog { + Q_OBJECT + + public: + explicit PrinterSettingsDialog(QWidget *parent = nullptr); + ~PrinterSettingsDialog(); + + // Методы доступа к данным + inline double getTariff() const { + return ui->input_tarif->toPlainText().toDouble(); + } + + inline double getRejectCoefficient() const { + return ui->input_q_trash->toPlainText().toDouble(); + } + + inline double getFilamentCost() const { + return ui->input_price_pastik->toPlainText().toDouble(); + } + + inline double getMarkupPercent() const { + return ui->input_overprice->toPlainText().toDouble(); + } + + inline int getFilamentWeight() const { + return ui->plastik_menu->currentText().toInt(); + } + + // Методы установки значений + inline void setTariff(double value) { + ui->input_tarif->setPlainText(QString::number(value)); + } + + inline void setRejectCoefficient(double value) { + ui->input_q_trash->setPlainText(QString::number(value)); + } + + inline void setFilamentCost(double value) { + ui->input_price_pastik->setPlainText(QString::number(value)); + } + + inline void setMarkupPercent(double value) { + ui->input_overprice->setPlainText(QString::number(value)); + } + + inline void setFilamentWeight(int value) { + int index = ui->plastik_menu->findText(QString::number(value)); + if (index != -1) ui->plastik_menu->setCurrentIndex(index); + } + + private: + Ui::PrinterSettingsDialog *ui; + + // QDoubleValidator *doubleValidator; + void setupValidators(); +}; + +#endif // PrinterSettingsDialog_H \ No newline at end of file diff --git a/src/view/resources.qrc b/src/view/resources.qrc new file mode 100644 index 0000000..8b5363c --- /dev/null +++ b/src/view/resources.qrc @@ -0,0 +1,15 @@ + + + img/calc.png + img/exit.png + img/rubl.png + img/logo-1.png + img/logo-2.png + img/logo-3.png + img/logo-4.png + img/logo-5.png + img/logo-6.png + img/logo-7.png + img/logo-8.png + + \ No newline at end of file diff --git a/src/view/ui/about.ui b/src/view/ui/about.ui index f91c186..ff11297 100644 --- a/src/view/ui/about.ui +++ b/src/view/ui/about.ui @@ -1,7 +1,13 @@ About - + + + + background-color: rgb(42, 45, 46); + color: white; + + 0 @@ -11,7 +17,7 @@ - О прграмме + О программе diff --git a/src/view/ui/add_printer.ui b/src/view/ui/add_preset.ui similarity index 98% rename from src/view/ui/add_printer.ui rename to src/view/ui/add_preset.ui index 494fa66..4fdbe42 100644 --- a/src/view/ui/add_printer.ui +++ b/src/view/ui/add_preset.ui @@ -2,6 +2,12 @@ AddPrinter + + + background-color: rgb(42, 45, 46); + color: white; + + 0 diff --git a/src/view/ui/del_preset.ui b/src/view/ui/del_preset.ui index ef02ff1..879a63b 100644 --- a/src/view/ui/del_preset.ui +++ b/src/view/ui/del_preset.ui @@ -2,6 +2,12 @@ DelPreset + + + background-color: rgb(42, 45, 46); + color: white; + + 0 diff --git a/src/view/ui/edit_preset.ui b/src/view/ui/edit_preset.ui index 8f37cd2..30150eb 100644 --- a/src/view/ui/edit_preset.ui +++ b/src/view/ui/edit_preset.ui @@ -2,6 +2,12 @@ EditPreset + + + background-color: rgb(42, 45, 46); + color: white; + + 0 diff --git a/src/view/ui/formula.ui b/src/view/ui/formula.ui index 961a2ff..c87ddfd 100644 --- a/src/view/ui/formula.ui +++ b/src/view/ui/formula.ui @@ -2,6 +2,12 @@ Formula + + + background-color: rgb(42, 45, 46); + color: white; + + 0 @@ -31,6 +37,9 @@ 9 + + color: white; + ## Формула расчета diff --git a/src/view/ui/main_window.ui b/src/view/ui/main_window.ui index b5e8bc8..c5528f1 100644 --- a/src/view/ui/main_window.ui +++ b/src/view/ui/main_window.ui @@ -35,6 +35,12 @@ QMainWindow::DockOption::AllowTabbedDocks|QMainWindow::DockOption::AnimatedDocks + + + background-color: rgb(42, 45, 46); + color: white; + + @@ -132,6 +138,9 @@ 25 + + alternate-background-color: rgb(77, 77, 77); + true @@ -152,12 +161,12 @@ - Ender3/Ender3pro + None - FlyBeer + Checked @@ -316,6 +325,9 @@ 17 + + background-color: rgb(0, 0, 0); + 10 @@ -883,7 +895,7 @@ Пресеты принтера - + @@ -939,7 +951,7 @@ Настройки - + Добавить принтер diff --git a/src/view/ui/settings.ui b/src/view/ui/printer_settings.ui similarity index 98% rename from src/view/ui/settings.ui rename to src/view/ui/printer_settings.ui index 15b81d5..a4cd717 100644 --- a/src/view/ui/settings.ui +++ b/src/view/ui/printer_settings.ui @@ -1,7 +1,13 @@ - Settings - + PrinterSettingsDialog + + + + background-color: rgb(42, 45, 46); + color: white; + + 0 diff --git a/src/view/ui/settings_preset.ui b/src/view/ui/settings_preset.ui index 0f7a701..29522d8 100644 --- a/src/view/ui/settings_preset.ui +++ b/src/view/ui/settings_preset.ui @@ -2,6 +2,12 @@ SettingsPreset + + + background-color: rgb(42, 45, 46); + color: white; + + 0 diff --git a/src/view/ui/updates.ui b/src/view/ui/updates.ui index 1bc97a2..8803366 100644 --- a/src/view/ui/updates.ui +++ b/src/view/ui/updates.ui @@ -2,6 +2,12 @@ Updates + + + background-color: rgb(42, 45, 46); + color: white; + + 0 diff --git a/src/view/update_dialog.cpp b/src/view/update_dialog.cpp new file mode 100644 index 0000000..43831c9 --- /dev/null +++ b/src/view/update_dialog.cpp @@ -0,0 +1,36 @@ +#include "update_dialog.h" +#include "ui/ui_updates.h" +#include + +UpdatesDialog::UpdatesDialog(QWidget *parent) + : QDialog(parent), + ui(new Ui::Updates) +{ + ui->setupUi(this); + + setWindowIcon(QIcon("img/logo-1.png")); + + connect(ui->pushButton_2, &QPushButton::clicked, this, &UpdatesDialog::onCloseClicked); + connect(ui->pushButton, &QPushButton::clicked, this, &UpdatesDialog::onVisitWebsiteClicked); +} + +UpdatesDialog::~UpdatesDialog() { + delete ui; +} + +void UpdatesDialog::setCurrentVersion(const QString &version) { + ui->label_3->setText(version); +} + +void UpdatesDialog::setLatestVersion(const QString &version) { + ui->label_4->setText(version); +} + +void UpdatesDialog::onCloseClicked() { + close(); +} + +void UpdatesDialog::onVisitWebsiteClicked() { + // TODO занести сайт + QDesktopServices::openUrl(WEBSITE_URL); +} \ No newline at end of file diff --git a/src/view/update_dialog.h b/src/view/update_dialog.h new file mode 100644 index 0000000..7815a16 --- /dev/null +++ b/src/view/update_dialog.h @@ -0,0 +1,31 @@ +#ifndef UPDATESDIALOG_H +#define UPDATESDIALOG_H + +#include +#include + +namespace Ui { +class Updates; +} + +class UpdatesDialog : public QDialog { + Q_OBJECT + +public: + explicit UpdatesDialog(QWidget *parent = nullptr); + ~UpdatesDialog(); + + // Методы для обновления информации о версиях + void setCurrentVersion(const QString &version); + void setLatestVersion(const QString &version); + +private slots: + void onCloseClicked(); + void onVisitWebsiteClicked(); + +private: + Ui::Updates *ui; + const QUrl WEBSITE_URL = QUrl("https://your-update-website.com"); +}; + +#endif // UPDATESDIALOG_H \ No newline at end of file