diff --git a/src/AccountFormDialog.cpp b/src/AccountFormDialog.cpp new file mode 100644 index 0000000..08b8bf7 --- /dev/null +++ b/src/AccountFormDialog.cpp @@ -0,0 +1,82 @@ +// +// Created by Krad on 2021/11/10. +// + +#include "AccountFormDialog.h" +#include +#include +#include +#include +#include +#include "db/SQLHelper.h" +#include "models/User.h" +AccountFormDialog::AccountFormDialog(QWidget *parent, Qt::WindowFlags f) : GUIFormBaseDialog(parent, f) { + QVBoxLayout* layout = new QVBoxLayout(formWidget); + layout->setSpacing(10); + QLabel* lbl_title = new QLabel(this); + lbl_title->setAlignment(Qt::AlignCenter); + lbl_title->setText(tr("Account")); + lbl_title->setObjectName("title"); + layout->addWidget(lbl_title); + QLabel* lbl_UserCode = new QLabel(this); + lbl_UserCode->setText(tr("User ID")); + QLineEdit* le_UserCode = new QLineEdit(this); + le_UserCode->setEnabled(false); + layout->addWidget(lbl_UserCode); + layout->addWidget(le_UserCode); + QLabel* lbl_endline1 = new QLabel(this); + lbl_endline1->setObjectName("endline"); + layout->addWidget(lbl_endline1); + + QLabel* lbl_UserName = new QLabel(this); + lbl_UserName->setText(tr("Name")); + QLineEdit* le_UserName = new QLineEdit(this); + layout->addWidget(lbl_UserName); + layout->addWidget(le_UserName); + QLabel* lbl_endline2 = new QLabel(this); + lbl_endline2->setObjectName("endline"); + layout->addWidget(lbl_endline2); + + QLabel* lbl_Pwd = new QLabel(this); + lbl_Pwd->setText(tr("Password")); + QPushButton* btn_Pwd = new QPushButton(this); + btn_Pwd->setText(tr("Change Password")); + layout->addWidget(lbl_Pwd); + layout->addWidget(btn_Pwd); + QLabel* lbl_endline3 = new QLabel(this); + lbl_endline3->setObjectName("endline"); + layout->addWidget(lbl_endline3); + + QLabel* lbl_Logout = new QLabel(this); + lbl_Logout->setText(tr("Logout")); + QPushButton* btnLogout= new QPushButton(this); + btnLogout->setText(tr("Logout")); + layout->addWidget(lbl_Logout); + layout->addWidget(btnLogout); + QLabel* lbl_endline0 = new QLabel(this); + lbl_endline0->setObjectName("endline"); + layout->addWidget(lbl_endline0); + + if (User::Current()) + { + le_UserCode->setText(User::Current()->getUserCode()); + le_UserName->setText(User::Current()->getUserName()); + m_UserID = User::Current()->getUserID(); + m_UserPwd = User::Current()->getPassword(); + } + connect(le_UserName, &QLineEdit::textChanged, [t=this](const QString& text){ + t->m_NewUserName = text; + t->userNameChanged = true; + }); +} + +AccountFormDialog::~AccountFormDialog() { + +} + +bool AccountFormDialog::updateReferenceData() { + if (!this->userNameChanged) return true; + User::Current()->setUserName(m_NewUserName); + bool ret = User::Current()->submitChange(); + return ret; +} diff --git a/src/AccountFormDialog.h b/src/AccountFormDialog.h new file mode 100644 index 0000000..da28ec2 --- /dev/null +++ b/src/AccountFormDialog.h @@ -0,0 +1,25 @@ +// +// Created by Krad on 2021/11/10. +// + +#ifndef GUI_ACCOUNTFORMDIALOG_H +#define GUI_ACCOUNTFORMDIALOG_H + +#include "GUIFormBaseDialog.h" +class AccountFormDialog:public GUIFormBaseDialog{ + Q_OBJECT +public: + explicit AccountFormDialog(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags()); + ~AccountFormDialog(); +protected: + bool updateReferenceData() override; +private: + QString m_UserID; + QString m_UserPwd; + QString m_RoleID; + QString m_NewUserName; + bool userNameChanged = false; +}; + + +#endif //GUI_ACCOUNTFORMDIALOG_H