This commit is contained in:
2026-01-18 13:24:34 +03:00
parent 9b51e3f3e7
commit 53384337bd
3 changed files with 50 additions and 10 deletions

View File

@@ -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;
}

View File

@@ -6,7 +6,8 @@
#include <QDialog>
#include <QDragEnterEvent>
#include <QLabel>
#include <QMimeData>
#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();
@@ -43,6 +54,7 @@ private:
QLineEdit* m_hardwareHashLineEdit{nullptr}; //!< Поле для отображения хеша оборудования.
QPushButton* m_saveButton{nullptr};
QString m_filesPath;
Type m_type = Type::None;
};
#endif //LICENSEMANAGER_EDITCLIENTDIALOG_H

View File

@@ -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)