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); hLayout->addWidget(cancelButton);
vLayout->addItem(hLayout); 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); connect(cancelButton, &QPushButton::clicked, this, &QDialog::reject);
} }
@@ -128,11 +128,6 @@ void EditClientDialog::saveSettings()
settings.setValue(WINDOW_SIZE, size()); settings.setValue(WINDOW_SIZE, size());
} }
void EditClientDialog::onSaveButtonClicked()
{
}
void EditClientDialog::onFilesChanged(const QStringList &paths) void EditClientDialog::onFilesChanged(const QStringList &paths)
{ {
if (paths.isEmpty()) if (paths.isEmpty())
@@ -171,3 +166,27 @@ QLabel* EditClientDialog::makeLabel(const QString &text)
label->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred); label->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred);
return label; 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 <QDialog>
#include <QDragEnterEvent> #include <QDragEnterEvent>
#include <QLabel> #include <QLabel>
#include <QMimeData>
#include "LicenseModel/LicenseModel.h"
class QLineEdit; class QLineEdit;
class QTabWidget; class QTabWidget;
@@ -17,11 +18,21 @@ class EditClientDialog : public QDialog
{ {
Q_OBJECT Q_OBJECT
public: public:
enum class Type
{
None = 0,
Add,
Edit,
};
EditClientDialog(LicenseModel* model, QWidget *parent = nullptr); EditClientDialog(LicenseModel* model, QWidget *parent = nullptr);
~EditClientDialog(); ~EditClientDialog();
void setType(Type type);
Type getType() const;
LicenseModel::LicenseItem getLicenseItem() const;
private slots: private slots:
void onSaveButtonClicked();
void onFilesChanged(const QStringList &paths); void onFilesChanged(const QStringList &paths);
private: private:
void loadSettings(); void loadSettings();
@@ -40,9 +51,10 @@ private:
QLineEdit* m_yourCompanyNameTextEdit{nullptr}; //!< Поле ввода названия компании пользователя. QLineEdit* m_yourCompanyNameTextEdit{nullptr}; //!< Поле ввода названия компании пользователя.
QLineEdit* m_sellerNameTextEdit{nullptr}; //!< Поле ввода названия продавца (если используется). QLineEdit* m_sellerNameTextEdit{nullptr}; //!< Поле ввода названия продавца (если используется).
QLineEdit* m_cityLineEdit{nullptr}; //!< Поле ввода города. QLineEdit* m_cityLineEdit{nullptr}; //!< Поле ввода города.
QLineEdit* m_hardwareHashLineEdit{nullptr}; //!< Поле для отображения хеша оборудования. QLineEdit* m_hardwareHashLineEdit{nullptr}; //!< Поле для отображения хеша оборудования.
QPushButton* m_saveButton{nullptr}; QPushButton* m_saveButton{nullptr};
QString m_filesPath; QString m_filesPath;
Type m_type = Type::None;
}; };
#endif //LICENSEMANAGER_EDITCLIENTDIALOG_H #endif //LICENSEMANAGER_EDITCLIENTDIALOG_H

View File

@@ -54,6 +54,7 @@ MainWidget::MainWidget(QWidget *parent)
{ {
m_tableView = new QTableView(this); m_tableView = new QTableView(this);
m_tableView->horizontalHeader()->setStretchLastSection(true); m_tableView->horizontalHeader()->setStretchLastSection(true);
m_tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
m_tableView->setModel(m_licenseModel); m_tableView->setModel(m_licenseModel);
setCentralWidget(m_tableView); setCentralWidget(m_tableView);
@@ -144,17 +145,25 @@ void MainWidget::onReloadTableTriggered()
void MainWidget::onAddClientTriggered() void MainWidget::onAddClientTriggered()
{ {
EditClientDialog dialog(m_licenseModel, this); EditClientDialog dialog(m_licenseModel, this);
dialog.setType(EditClientDialog::Type::Add);
dialog.exec(); dialog.exec();
} }
void MainWidget::onEditClientTriggered() void MainWidget::onEditClientTriggered()
{ {
EditClientDialog dialog(m_licenseModel, this);
dialog.setType(EditClientDialog::Type::Edit);
dialog.exec();
} }
void MainWidget::onDeleteClientTriggered() 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) void MainWidget::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)