diff --git a/src/EditClientDialog/EditClientDialog.cpp b/src/EditClientDialog/EditClientDialog.cpp index bcb9358..f2c268a 100644 --- a/src/EditClientDialog/EditClientDialog.cpp +++ b/src/EditClientDialog/EditClientDialog.cpp @@ -2,12 +2,17 @@ // Qt #include +#include #include +#include +#include #include #include // 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; +}; diff --git a/src/EditClientDialog/EditClientDialog.h b/src/EditClientDialog/EditClientDialog.h index 8aa46a2..f0eccbe 100644 --- a/src/EditClientDialog/EditClientDialog.h +++ b/src/EditClientDialog/EditClientDialog.h @@ -7,6 +7,7 @@ #include #include #include +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; };