diff --git a/src/EditClientDialog/EditClientDialog.cpp b/src/EditClientDialog/EditClientDialog.cpp index 5af672c..7b769ae 100644 --- a/src/EditClientDialog/EditClientDialog.cpp +++ b/src/EditClientDialog/EditClientDialog.cpp @@ -103,7 +103,7 @@ EditClientDialog::EditClientDialog(LicenseModel* model, QWidget *parent) hLayout->addWidget(cancelButton); vLayout->addItem(hLayout); - connect(m_saveButton, &QPushButton::clicked, this, &EditClientDialog::onSaveButtonClicked); + connect(m_saveButton, &QPushButton::clicked, this, &QDialog::accept); connect(cancelButton, &QPushButton::clicked, this, &QDialog::reject); } @@ -128,11 +128,6 @@ void EditClientDialog::saveSettings() settings.setValue(WINDOW_SIZE, size()); } -void EditClientDialog::onSaveButtonClicked() -{ - -} - void EditClientDialog::onFilesChanged(const QStringList &paths) { if (paths.isEmpty()) @@ -171,3 +166,27 @@ QLabel* EditClientDialog::makeLabel(const QString &text) label->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred); return label; }; + +void EditClientDialog::setType(Type type) +{ + m_type = type; +} + +EditClientDialog::Type EditClientDialog::getType() const +{ + return m_type; +} + +LicenseModel::LicenseItem EditClientDialog::getLicenseItem() const +{ + LicenseModel::LicenseItem item; + item.lastName = m_lastNameLineEdit->text().trimmed(); + item.firstName = m_firstNameLineEdit->text().trimmed(); + item.patronymic = m_patronymicLineEdit->text().trimmed(); + item.email = m_emailLineEdit->text().trimmed(); + item.phone = m_phoneLineEdit->text().trimmed(); + item.city = m_cityLineEdit->text().trimmed(); + item.yourCompany = m_yourCompanyNameTextEdit->text().trimmed(); + item.hardwareHash = m_hardwareHashLineEdit->text().trimmed(); + return item; +} diff --git a/src/EditClientDialog/EditClientDialog.h b/src/EditClientDialog/EditClientDialog.h index f0eccbe..88b800e 100644 --- a/src/EditClientDialog/EditClientDialog.h +++ b/src/EditClientDialog/EditClientDialog.h @@ -6,7 +6,8 @@ #include #include #include -#include + +#include "LicenseModel/LicenseModel.h" class QLineEdit; class QTabWidget; @@ -17,11 +18,21 @@ class EditClientDialog : public QDialog { Q_OBJECT public: + + enum class Type + { + None = 0, + Add, + Edit, + }; + EditClientDialog(LicenseModel* model, QWidget *parent = nullptr); ~EditClientDialog(); + void setType(Type type); + Type getType() const; + LicenseModel::LicenseItem getLicenseItem() const; private slots: - void onSaveButtonClicked(); void onFilesChanged(const QStringList &paths); private: void loadSettings(); @@ -40,9 +51,10 @@ private: QLineEdit* m_yourCompanyNameTextEdit{nullptr}; //!< Поле ввода названия компании пользователя. QLineEdit* m_sellerNameTextEdit{nullptr}; //!< Поле ввода названия продавца (если используется). QLineEdit* m_cityLineEdit{nullptr}; //!< Поле ввода города. - QLineEdit* m_hardwareHashLineEdit{nullptr}; //!< Поле для отображения хеша оборудования. + QLineEdit* m_hardwareHashLineEdit{nullptr}; //!< Поле для отображения хеша оборудования. QPushButton* m_saveButton{nullptr}; QString m_filesPath; + Type m_type = Type::None; }; #endif //LICENSEMANAGER_EDITCLIENTDIALOG_H diff --git a/src/MainWidget/MainWidget.cpp b/src/MainWidget/MainWidget.cpp index 9ab2344..1420e28 100644 --- a/src/MainWidget/MainWidget.cpp +++ b/src/MainWidget/MainWidget.cpp @@ -54,6 +54,7 @@ MainWidget::MainWidget(QWidget *parent) { m_tableView = new QTableView(this); m_tableView->horizontalHeader()->setStretchLastSection(true); + m_tableView->setSelectionBehavior(QAbstractItemView::SelectRows); m_tableView->setModel(m_licenseModel); setCentralWidget(m_tableView); @@ -144,17 +145,25 @@ void MainWidget::onReloadTableTriggered() void MainWidget::onAddClientTriggered() { EditClientDialog dialog(m_licenseModel, this); + dialog.setType(EditClientDialog::Type::Add); dialog.exec(); } void MainWidget::onEditClientTriggered() { - + EditClientDialog dialog(m_licenseModel, this); + dialog.setType(EditClientDialog::Type::Edit); + dialog.exec(); } void MainWidget::onDeleteClientTriggered() { + auto selectedRows = m_tableView->selectionModel()->selectedRows(); + if (selectedRows.isEmpty()) + return; + for (auto i = selectedRows.size() - 1; i >= 0; i--) + m_licenseModel->deleteClient(selectedRows[i].row()); } void MainWidget::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)