Files
GUI/src/models/User.h

67 lines
1.4 KiB
C
Raw Normal View History

2021-11-11 14:09:12 +08:00
//
// Created by Krad on 2021/11/11.
//
#ifndef GUI_USER_H
#define GUI_USER_H
#define USER_PROPERTIES_MACRO()\
USER_READONLY_PROPERTY(UserID)\
USER_READONLY_PROPERTY(UserCode)\
USER_PROPERTY(UserName)\
USER_PROPERTY(Password)\
USER_PROPERTY(RoleID)\
USER_PROPERTY(Comment)
#include <QObject>
class User:public QObject {
Q_OBJECT
public:
static bool QueryUser(QString userID, QString Pwd);
static User* Current(){
return currentUser;
}
explicit User(QObject *parent=nullptr);
~User();
QString getIndexName(){
return "UserID";
}
QString getIndexValue(){
return m_UserID;
}
// add properties setter and getter
#define USER_READONLY_PROPERTY(name)\
QString get##name(){\
return m_##name;\
}
#define USER_PROPERTY(name)\
USER_READONLY_PROPERTY(name)\
void set##name(const QString & v)\
{\
if (m_##name == v) return;\
m_##name = v;\
mf_##name = true;\
}
USER_PROPERTIES_MACRO()
#undef USER_PROPERTY
#undef USER_READONLY_PROPERTY
bool submitChange();
private:
static User* currentUser;
// add properties store and modify flag
#define USER_READONLY_PROPERTY(name) QString m_##name;
#define USER_PROPERTY(name)\
USER_READONLY_PROPERTY(name)\
bool mf_##name = false;
USER_PROPERTIES_MACRO()
#undef USER_PROPERTY
#undef USER_READONLY_PROPERTY
};
#endif //GUI_USER_H