fix: finalize edit client dialog ui

This commit is contained in:
2026-01-17 23:14:44 +03:00
parent 65d44ed5f8
commit 60090062dc
2 changed files with 82 additions and 6 deletions

View File

@@ -2,12 +2,17 @@
// Qt
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>
#include <QJsonDocument>
#include <QJsonObject>
#include <QTabWidget>
#include <QVBoxLayout>
// Self
#include "DropFileWidget.h"
#include "DropFileWidget.h"
#include "DropFileWidget.h"
#include "LicenseModel/LicenseModel.h"
EditClientDialog::EditClientDialog(LicenseModel* model, QWidget *parent)
@@ -44,13 +49,47 @@ EditClientDialog::EditClientDialog(LicenseModel* model, QWidget *parent)
// Manual user add widget
{
auto manualWidget = new QWidget(m_tabWidget);
auto layout = new QVBoxLayout;
manualWidget->setLayout(layout);
m_manualWidget = new QWidget(m_tabWidget);
auto gridLayout = new QGridLayout();
m_manualWidget->setLayout(gridLayout);
gridLayout->setColumnStretch(0, 0);
gridLayout->setColumnStretch(1, 1);
gridLayout->addWidget(makeLabel(tr("First name")), 0, 0);
m_firstNameLineEdit = new QLineEdit(m_manualWidget);
gridLayout->addWidget(m_firstNameLineEdit, 0, 1);
gridLayout->addWidget(makeLabel(tr("Last name")), 1, 0);
m_lastNameLineEdit = new QLineEdit(m_manualWidget);
gridLayout->addWidget(m_lastNameLineEdit, 1, 1);
gridLayout->addWidget(makeLabel(tr("Patronymic")), 2, 0);
m_patronymicLineEdit = new QLineEdit(m_manualWidget);
gridLayout->addWidget(m_patronymicLineEdit, 2, 1);
m_tabWidget->addTab(manualWidget, tr("Manual"));
gridLayout->addWidget(makeLabel(tr("Email")), 3, 0);
m_emailLineEdit = new QLineEdit(m_manualWidget);
m_emailLineEdit->setPlaceholderText("examplebox@email.com");
gridLayout->addWidget(m_emailLineEdit, 3, 1);
gridLayout->addWidget(makeLabel(tr("Phone")), 4, 0);
m_phoneLineEdit = new QLineEdit(m_manualWidget);
m_phoneLineEdit->setPlaceholderText("+7(777)777-77-77");
gridLayout->addWidget(m_phoneLineEdit, 4, 1);
gridLayout->addWidget(makeLabel(tr("City")), 5, 0);
m_cityLineEdit = new QLineEdit(m_manualWidget);
gridLayout->addWidget(m_cityLineEdit, 5, 1);
gridLayout->addWidget(makeLabel(tr("You company name")), 6, 0);
m_yourCompanyNameTextEdit = new QLineEdit(m_manualWidget);
gridLayout->addWidget(m_yourCompanyNameTextEdit, 6, 1);
gridLayout->addWidget(makeLabel(tr("Hardware hash")), 9, 0);
m_hardwareHashLineEdit = new QLineEdit(m_manualWidget);
gridLayout->addWidget(m_hardwareHashLineEdit, 9, 1);
gridLayout->addItem(new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding), 10, 0, 1, 2);
m_tabWidget->addTab(m_manualWidget, tr("Manual"));
}
auto hLayout = new QHBoxLayout;
@@ -97,7 +136,33 @@ void EditClientDialog::onFilesChanged(const QStringList &paths)
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
return;
file.close();
m_filesPath = paths.at(0);
m_configPathLabel->setText(paths.at(0).split("/").last());
auto configBody = QJsonDocument::fromJson(file.readAll()).object();
if (configBody.contains("lastName"))
m_lastNameLineEdit->setText(configBody.value("lastName").toString());
if (configBody.contains("firstName"))
m_firstNameLineEdit->setText(configBody.value("firstName").toString());
if (configBody.contains("patronymic"))
m_patronymicLineEdit->setText(configBody.value("patronymic").toString());
if (configBody.contains("email"))
m_emailLineEdit->setText(configBody.value("email").toString());
if (configBody.contains("phone"))
m_phoneLineEdit->setText(configBody.value("phone").toString());
if (configBody.contains("city"))
m_cityLineEdit->setText(configBody.value("city").toString());
if (configBody.contains("yourCompany"))
m_yourCompanyNameTextEdit->setText(configBody.value("yourCompany").toString());
if (configBody.contains("hardwareHash"))
m_hardwareHashLineEdit->setText(configBody.value("hardwareHash").toString());
file.close();
}
QLabel* EditClientDialog::makeLabel(const QString &text)
{
auto *label = new QLabel(text, m_manualWidget);
label->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred);
return label;
};

View File

@@ -7,6 +7,7 @@
#include <QDragEnterEvent>
#include <QLabel>
#include <QMimeData>
class QLineEdit;
class QTabWidget;
// Self
@@ -25,11 +26,21 @@ private slots:
private:
void loadSettings();
void saveSettings();
QLabel* makeLabel(const QString &text);
private:
LicenseModel* m_model{nullptr};
QTabWidget* m_tabWidget{nullptr};
QLabel* m_configPathLabel{nullptr};
QWidget* m_manualWidget{nullptr};
QLineEdit* m_firstNameLineEdit{nullptr}; //!< Поле ввода имени пользователя.
QLineEdit* m_lastNameLineEdit{nullptr}; //!< Поле ввода фамилии пользователя.
QLineEdit* m_patronymicLineEdit{nullptr}; //!< Поле ввода отчества пользователя.
QLineEdit* m_emailLineEdit{nullptr}; //!< Поле ввода электронной почты.
QLineEdit* m_phoneLineEdit{nullptr}; //!< Поле ввода номера телефона.
QLineEdit* m_yourCompanyNameTextEdit{nullptr}; //!< Поле ввода названия компании пользователя.
QLineEdit* m_sellerNameTextEdit{nullptr}; //!< Поле ввода названия продавца (если используется).
QLineEdit* m_cityLineEdit{nullptr}; //!< Поле ввода города.
QLineEdit* m_hardwareHashLineEdit{nullptr}; //!< Поле для отображения хеша оборудования.
QPushButton* m_saveButton{nullptr};
QString m_filesPath;
};