Account Form dialog

This commit is contained in:
Krad
2021-11-11 14:10:41 +08:00
parent d87fb8e429
commit a28f2a47aa
2 changed files with 107 additions and 0 deletions

82
src/AccountFormDialog.cpp Normal file
View File

@@ -0,0 +1,82 @@
//
// Created by Krad on 2021/11/10.
//
#include "AccountFormDialog.h"
#include <QVBoxLayout>
#include <QLabel>
#include <QToolButton>
#include <QPushButton>
#include <QLineEdit>
#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;
}

25
src/AccountFormDialog.h Normal file
View File

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