[bug fixes]

This commit is contained in:
xueyan hu
2021-12-23 10:09:35 +08:00
parent e83ddd3534
commit f3dccc7aab
24 changed files with 591 additions and 551 deletions

2
.gitignore vendored
View File

@@ -9,3 +9,5 @@
/out/ /out/
/.vs/ /.vs/
/CMakeSettings.json /CMakeSettings.json
/src/translations/*.ts
*.ts

View File

@@ -35,6 +35,18 @@ file(GLOB project_uis ./src/*.ui)
qt5_wrap_ui(ui_FILES ${project_uis}) qt5_wrap_ui(ui_FILES ${project_uis})
file(GLOB project_res ./src/*.qrc) file(GLOB project_res ./src/*.qrc)
#ADD_SUBDIRECTORY(./src/translations)
#set(TS_FILES
# ./src/translations/en_US.ts
# ./src/translations/zh_CN.ts)
#find_package(Qt5 COMPONENTS ${REQUIRED_LIBS} LinguistTools REQUIRED)
#qt5_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})
#add_executable(${PROJECT_NAME} ${project_headers} ${project_cpps} ${project_cxx} ${project_res} ${project_cc} ${project_c} ${ui_FILES} ${QM_FILES} )
#file(GLOB TS_FILES ./src/translations/*.ts)
SET_DIRECTORY_PROPERTIES(PROPERTIES CLEAN_NO_CUSTOM TRUE)
#file(GLOB TS_FILES ./src/translations/*.ts)
set(TS_FILES set(TS_FILES
./src/translations/en_US.ts ./src/translations/en_US.ts
./src/translations/zh_CN.ts) ./src/translations/zh_CN.ts)
@@ -50,7 +62,7 @@ set(cpp_source_all ${project_headers} ${project_cpps} ${project_cxx} ${project_r
qt5_create_translation(QM_FILES ${cpp_source_all} ${TS_FILES}) qt5_create_translation(QM_FILES ${cpp_source_all} ${TS_FILES})
add_executable(${PROJECT_NAME} ${cpp_source_all} ${ui_FILES} ${QM_FILES} ) add_executable(${PROJECT_NAME} ${cpp_source_all} ${ui_FILES} ${QM_FILES} )
add_executable(${PROJECT_NAME} ${project_headers} ${project_cpps} ${project_cxx} ${project_res} ${project_cc} ${project_c} ${ui_FILES} ) add_executable(${PROJECT_NAME} ${project_headers} ${project_cpps} ${project_cxx} ${project_res} ${project_cc} ${project_c} ${ui_FILES} ${QM_FILES} )
if(UNIX AND USE_SHIMLIB) if(UNIX AND USE_SHIMLIB)
link_directories(/usr/local/lib64) link_directories(/usr/local/lib64)
target_link_libraries(${PROJECT_NAME} Qt5::Core Qt5::Widgets Qt5::Gui Qt5::OpenGL Qt5::Sql Qt5::VirtualKeyboard Qt5::Network pthread usct_shim dmapi log4c cunit ctomat hdf5 matio m) target_link_libraries(${PROJECT_NAME} Qt5::Core Qt5::Widgets Qt5::Gui Qt5::OpenGL Qt5::Sql Qt5::VirtualKeyboard Qt5::Network pthread usct_shim dmapi log4c cunit ctomat hdf5 matio m)

View File

@@ -10,181 +10,181 @@
#include <QToolButton> #include <QToolButton>
#include <QPushButton> #include <QPushButton>
#include <QLineEdit> #include <QLineEdit>
#include <src/event/EventCenter.h> #include "event/EventCenter.h"
#include <src/log/UserOperationLog.h> #include "log/UserOperationLog.h"
#include "db/SQLHelper.h" #include "db/SQLHelper.h"
#include "models/User.h" #include "models/User.h"
#include "components/SlidePickerBox.h" #include "components/SlidePickerBox.h"
#include "SelectDialog.h" #include "SelectDialog.h"
#include "AlertDialog.h" #include "AlertDialog.h"
AccountFormDialog::AccountFormDialog(QWidget *parent,AccountEditMode mode, Qt::WindowFlags f) : GUIFormBaseDialog(parent, f) { AccountFormDialog::AccountFormDialog(QWidget* parent, AccountEditMode mode, Qt::WindowFlags f) : GUIFormBaseDialog(parent, f) {
m_mode = mode; m_mode = mode;
QVBoxLayout* layout = new QVBoxLayout(formWidget); QVBoxLayout* layout = new QVBoxLayout(formWidget);
layout->setSpacing(10); layout->setSpacing(10);
// add title // add title
QLabel* lbl_title = new QLabel(this); QLabel* lbl_title = new QLabel(this);
lbl_title->setAlignment(Qt::AlignCenter); lbl_title->setAlignment(Qt::AlignCenter);
lbl_title->setText(tr("Account")); lbl_title->setText(tr("Account"));
lbl_title->setObjectName("title"); lbl_title->setObjectName("title");
layout->addWidget(lbl_title); layout->addWidget(lbl_title);
//add usercode //add usercode
QLabel* lbl_UserCode = new QLabel(this); QLabel* lbl_UserCode = new QLabel(this);
lbl_UserCode->setText(tr("User ID")); lbl_UserCode->setText(tr("User ID"));
le_UserCode = new QLineEdit(this); le_UserCode = new QLineEdit(this);
le_UserCode->setPlaceholderText(tr("Input User ID")); le_UserCode->setPlaceholderText(tr("Input User ID"));
if(m_mode != New)le_UserCode->setEnabled(false); if (m_mode != New)le_UserCode->setEnabled(false);
layout->addWidget(lbl_UserCode); layout->addWidget(lbl_UserCode);
layout->addWidget(le_UserCode); layout->addWidget(le_UserCode);
QLabel* lbl_endline1 = new QLabel(this); QLabel* lbl_endline1 = new QLabel(this);
lbl_endline1->setObjectName("endline"); lbl_endline1->setObjectName("endline");
layout->addWidget(lbl_endline1); layout->addWidget(lbl_endline1);
//add username //add username
QLabel* lbl_UserName = new QLabel(this); QLabel* lbl_UserName = new QLabel(this);
lbl_UserName->setText(tr("Name")); lbl_UserName->setText(tr("Name"));
le_UserName = new QLineEdit(this); le_UserName = new QLineEdit(this);
le_UserName->setPlaceholderText(tr("Input User name")); le_UserName->setPlaceholderText(tr("Input User name"));
layout->addWidget(lbl_UserName); layout->addWidget(lbl_UserName);
layout->addWidget(le_UserName); layout->addWidget(le_UserName);
QLabel* lbl_endline2 = new QLabel(this); QLabel* lbl_endline2 = new QLabel(this);
lbl_endline2->setObjectName("endline"); lbl_endline2->setObjectName("endline");
layout->addWidget(lbl_endline2); layout->addWidget(lbl_endline2);
//add password //add password
QLabel* lbl_Pwd = new QLabel(this); QLabel* lbl_Pwd = new QLabel(this);
lbl_Pwd->setText(tr("Password")); lbl_Pwd->setText(tr("Password"));
layout->addWidget(lbl_Pwd); layout->addWidget(lbl_Pwd);
// add new mode // add new mode
if (m_mode == New) if (m_mode == New)
{ {
le_Pwd = new QLineEdit(this); le_Pwd = new QLineEdit(this);
le_Pwd->setPlaceholderText(tr("Input password")); le_Pwd->setPlaceholderText(tr("Input password"));
le_Pwd->setEchoMode(QLineEdit::Password); le_Pwd->setEchoMode(QLineEdit::Password);
layout->addWidget(le_Pwd); layout->addWidget(le_Pwd);
} else{//edit mode }
btn_Pwd = new QPushButton(this); else {//edit mode
btn_Pwd->setText(tr(m_mode==Self?"Change Password":"Reset Password")); btn_Pwd = new QPushButton(this);
layout->addWidget(btn_Pwd); btn_Pwd->setText(tr(m_mode == Self ? "Change Password" : "Reset Password"));
} layout->addWidget(btn_Pwd);
QLabel* lbl_endline3 = new QLabel(this); }
lbl_endline3->setObjectName("endline"); QLabel* lbl_endline3 = new QLabel(this);
layout->addWidget(lbl_endline3); lbl_endline3->setObjectName("endline");
layout->addWidget(lbl_endline3);
if (m_mode == Self) if (m_mode == Self)
{ {
//add logout //add logout
QLabel* lbl_Logout = new QLabel(this); QLabel* lbl_Logout = new QLabel(this);
lbl_Logout->setText(tr("Logout")); lbl_Logout->setText(tr("Logout"));
QPushButton* btn_Logout= new QPushButton(this); QPushButton* btn_Logout = new QPushButton(this);
btn_Logout->setText(tr("Logout")); btn_Logout->setText(tr("Logout"));
layout->addWidget(lbl_Logout); layout->addWidget(lbl_Logout);
layout->addWidget(btn_Logout); layout->addWidget(btn_Logout);
QLabel* lbl_endline0 = new QLabel(this); QLabel* lbl_endline0 = new QLabel(this);
lbl_endline0->setObjectName("endline"); lbl_endline0->setObjectName("endline");
layout->addWidget(lbl_endline0); layout->addWidget(lbl_endline0);
// load current user data // load current user data
if (User::Current()) if (User::Current())
{ {
le_UserCode->setText(User::Current()->getUserCode()); le_UserCode->setText(User::Current()->getUserCode());
le_UserName->setText(User::Current()->getUserName()); le_UserName->setText(User::Current()->getUserName());
m_UserID = User::Current()->getUserID(); m_UserID = User::Current()->getUserID();
m_UserPwd = User::Current()->getPassword(); m_UserPwd = User::Current()->getPassword();
} }
connect(btn_Pwd, &QPushButton::clicked,[t=this](){ connect(btn_Pwd, &QPushButton::clicked, [t = this]() {
ChangePasswordFormDialog dia(t->parentWidget()); ChangePasswordFormDialog dia(t->parentWidget());
dia.setWindowModality(Qt::WindowModal); dia.setWindowModality(Qt::WindowModal);
dia.exec(); dia.exec();
}); });
connect(btn_Logout, &QAbstractButton::clicked, [=](){ connect(btn_Logout, &QAbstractButton::clicked, [=]() {
this->accept(); this->accept();
LOG_USER_OPERATION(Logout); LOG_USER_OPERATION(Logout);
EventCenter::Default()->triggerEvent(GUIEvents::RequestLogin, nullptr, nullptr); EventCenter::Default()->triggerEvent(GUIEvents::RequestLogin, nullptr, nullptr);
}); });
} }
else else
{ {
//add change role //add change role
QLabel* lbl_Role = new QLabel(this); QLabel* lbl_Role = new QLabel(this);
lbl_Role->setText(tr("Change Role")); lbl_Role->setText(tr("Change Role"));
btn_Role= new QPushButton(this); btn_Role = new QPushButton(this);
layout->addWidget(lbl_Role); layout->addWidget(lbl_Role);
layout->addWidget(btn_Role); layout->addWidget(btn_Role);
QLabel* lbl_endline0 = new QLabel(this); QLabel* lbl_endline0 = new QLabel(this);
lbl_endline0->setObjectName("endline"); lbl_endline0->setObjectName("endline");
layout->addWidget(lbl_endline0); layout->addWidget(lbl_endline0);
//set default value //set default value
if (m_mode == New) { if (m_mode == New) {
btn_Role->setText("doctor"); btn_Role->setText(tr("doctor"));
m_RoleID = User::getRoleID("doctor"); m_RoleID = User::getRoleID("doctor");
} }
else{ else {
connect(btn_Pwd,&QAbstractButton::clicked,[=](){ connect(btn_Pwd, &QAbstractButton::clicked, [=]() {
AlertDialog dialog(this); AlertDialog dialog(this);
dialog.setButtonMode(OkAndCancel); dialog.setButtonMode(OkAndCancel);
dialog.setWindowModality(Qt::WindowModal); dialog.setWindowModality(Qt::WindowModal);
dialog.setAlertMessage(tr("Reset password to \"123456\" ?")); dialog.setAlertMessage(tr("Reset password to \"123456\" ?"));
if (dialog.exec() == Accepted) if (dialog.exec() == Accepted)
{ {
User user; User user;
dialog.setButtonMode(OkOnly); dialog.setButtonMode(OkOnly);
if (!User::getUser(m_UserID, user)) { if (!User::getUser(m_UserID, user)) {
dialog.setAlertMessage(tr("Inner error, can't find reference user!")); dialog.setAlertMessage(tr("Inner error, can't find reference user!"));
dialog.exec(); dialog.exec();
return; return;
} }
if (!user.resetPassword()) if (!user.resetPassword())
{ {
dialog.setAlertMessage(tr("Submit change to database fail!")); dialog.setAlertMessage(tr("Submit change to database fail!"));
dialog.exec(); dialog.exec();
} }
} }
}); });
} }
connect(btn_Role,&QAbstractButton::clicked,[=](){ connect(btn_Role, &QAbstractButton::clicked, [=]() {
SelectDialog selectDialog(this); SelectDialog selectDialog(this);
selectDialog.setAvailableDates(User::getAllRoleName()); selectDialog.setAvailableDates(User::getAllRoleName());
selectDialog.setSelectedValue(btn_Role->text()); selectDialog.setSelectedValue(btn_Role->text());
selectDialog.setWindowModality(Qt::WindowModal); selectDialog.setWindowModality(Qt::WindowModal);
// submit change // submit change
if (selectDialog.exec() == Accepted) if (selectDialog.exec() == Accepted)
{ {
if (selectDialog.getSelectedValue() != btn_Role->text()) if (selectDialog.getSelectedValue() != btn_Role->text())
{ {
QString newRoleID = User::getRoleID(selectDialog.getSelectedValue()); QString newRoleID = User::getRoleID(selectDialog.getSelectedValue());
btn_Role->setText(selectDialog.getSelectedValue()); btn_Role->setText(selectDialog.getSelectedValue());
m_RoleID = newRoleID; m_RoleID = newRoleID;
qDebug()<<"new Role ID:"<<newRoleID; qDebug() << "new Role ID:" << newRoleID;
this->roleChanged = true; this->roleChanged = true;
} }
} }
}); });
} }
//add Comment //add Comment
QLabel* lbl_Comment = new QLabel(this); QLabel* lbl_Comment = new QLabel(this);
lbl_Comment->setText(tr("Comment")); lbl_Comment->setText(tr("Comment"));
le_Comment = new QLineEdit(this); le_Comment = new QLineEdit(this);
layout->addWidget(lbl_Comment); layout->addWidget(lbl_Comment);
layout->addWidget(le_Comment); layout->addWidget(le_Comment);
QLabel* lbl_endline0 = new QLabel(this); QLabel* lbl_endline0 = new QLabel(this);
lbl_endline0->setObjectName("endline"); lbl_endline0->setObjectName("endline");
layout->addWidget(lbl_endline0); layout->addWidget(lbl_endline0);
lbl_error = new QLabel(this);
lbl_error->setObjectName("warn");
lbl_error->setVisible(false);
layout->addWidget(lbl_error);
connect(le_Comment, &QLineEdit::textChanged, [=](const QString& text){
commentChanged = true;
});
connect(le_UserName, &QLineEdit::textChanged, [=](const QString& text){
m_NewUserName = text;
userNameChanged = true;
});
lbl_error = new QLabel(this);
lbl_error->setObjectName("warn");
lbl_error->setVisible(false);
layout->addWidget(lbl_error);
connect(le_Comment, &QLineEdit::textChanged, [=](const QString& text) {
commentChanged = true;
});
connect(le_UserName, &QLineEdit::textChanged, [=](const QString& text) {
m_NewUserName = text;
userNameChanged = true;
});
} }
AccountFormDialog::~AccountFormDialog() { AccountFormDialog::~AccountFormDialog() {
@@ -192,122 +192,125 @@ AccountFormDialog::~AccountFormDialog() {
} }
bool AccountFormDialog::updateReferenceData() { bool AccountFormDialog::updateReferenceData() {
if (m_mode == Self) { if (m_mode == Self) {
if (!this->userNameChanged && !this->commentChanged) return true; if (!this->userNameChanged && !this->commentChanged) return true;
if (!this->userNameChanged) { if (!this->userNameChanged) {
if (m_NewUserName.isEmpty()){ if (m_NewUserName.isEmpty()) {
warn(tr("User Name can't be empty!")); warn(tr("User Name can't be empty!"));
return false; return false;
} }
User::Current()->setUserName(m_NewUserName); User::Current()->setUserName(m_NewUserName);
} }
if (!this->commentChanged) User::Current()->setUserName(le_Comment->text()); if (!this->commentChanged) User::Current()->setUserName(le_Comment->text());
bool ret = User::Current()->submitChange(); bool ret = User::Current()->submitChange();
if (ret) { if (ret) {
hideWarn(); hideWarn();
LOG_USER_OPERATION(ChangeUserName); LOG_USER_OPERATION(ChangeUserName);
} }
else{ else {
warn(tr("Submit change to database fail!")); warn(tr("Submit change to database fail!"));
} }
return ret; return ret;
} else if (m_mode == Admin){ }
if (!this->userNameChanged && !this->roleChanged) return true; else if (m_mode == Admin) {
User user; if (!this->userNameChanged && !this->roleChanged) return true;
if (!User::getUser(m_UserID, user)) return true; User user;
if (this->userNameChanged){ if (!User::getUser(m_UserID, user)) return true;
if (m_NewUserName.isEmpty()){ if (this->userNameChanged) {
warn(tr("User Name can't be empty!")); if (m_NewUserName.isEmpty()) {
return false; warn(tr("User Name can't be empty!"));
} return false;
user.setUserName(m_NewUserName); }
} user.setUserName(m_NewUserName);
if (this->roleChanged) user.setRoleID(m_RoleID); }
if (!this->commentChanged) user.setComment(le_Comment->text()); if (this->roleChanged) user.setRoleID(m_RoleID);
bool ret = user.submitChange(); if (!this->commentChanged) user.setComment(le_Comment->text());
if (ret) { bool ret = user.submitChange();
LOG_USER_OPERATION(AdminChangeAcountInformation); if (ret) {
} LOG_USER_OPERATION(AdminChangeAcountInformation);
return ret; }
} else { return ret;
//add new }
User user; else {
if (le_UserCode->text().isEmpty()) { //add new
warn(tr("User ID can't be empty!")); User user;
return false; if (le_UserCode->text().isEmpty()) {
} warn(tr("User ID can't be empty!"));
if (le_UserName->text().isEmpty()) { return false;
warn(tr("User Name can't be empty!")); }
return false; if (le_UserName->text().isEmpty()) {
} warn(tr("User Name can't be empty!"));
if (le_Pwd->text().isEmpty()) { return false;
warn(tr("Password can't be empty!")); }
return false; if (le_Pwd->text().isEmpty()) {
} warn(tr("Password can't be empty!"));
if (!refmodel){ return false;
warn(tr("Inner error ,unset data model!")); }
return false; if (!refmodel) {
} warn(tr("Inner error ,unset data model!"));
if (User::existsUser(le_UserCode->text())){ return false;
warn(tr("User Id exists!")); }
return false; if (User::existsUser(le_UserCode->text())) {
} warn(tr("User Id exists!"));
hideWarn(); return false;
user.setUserName(le_UserName->text()); }
user.setPassword(User::getEncryptedPassword(le_Pwd->text())); hideWarn();
user.setRoleID(m_RoleID); user.setUserName(le_UserName->text());
user.setComment(le_Comment->text()); user.setPassword(User::getEncryptedPassword(le_Pwd->text()));
// User::insertUser(le_UserCode->text(),user); user.setRoleID(m_RoleID);
user.setComment(le_Comment->text());
// User::insertUser(le_UserCode->text(),user);
refmodel->insertRow(0); refmodel->insertRow(0);
refmodel->setData(refmodel->index(0, 0), QUuid::createUuid().toString()); refmodel->setData(refmodel->index(0, 0), QUuid::createUuid().toString());
refmodel->setData(refmodel->index(0, 1), le_UserCode->text()); refmodel->setData(refmodel->index(0, 1), le_UserCode->text());
#define USER_READONLY_PROPERTY(name) name, #define USER_READONLY_PROPERTY(name) name,
#define USER_PROPERTY(name)\ #define USER_PROPERTY(name)\
USER_READONLY_PROPERTY(name) USER_READONLY_PROPERTY(name)
enum user_index { enum user_index {
USER_PROPERTIES_MACRO() USER_PROPERTIES_MACRO()
}; };
#undef USER_READONLY_PROPERTY #undef USER_READONLY_PROPERTY
#undef USER_PROPERTY #undef USER_PROPERTY
#define USER_READONLY_PROPERTY(name) #define USER_READONLY_PROPERTY(name)
#define USER_PROPERTY(name)\ #define USER_PROPERTY(name)\
USER_READONLY_PROPERTY(name)\ USER_READONLY_PROPERTY(name)\
refmodel->setData(refmodel->index(0, name),user.get##name()); refmodel->setData(refmodel->index(0, name),user.get##name());
USER_PROPERTIES_MACRO() USER_PROPERTIES_MACRO()
#undef USER_READONLY_PROPERTY #undef USER_READONLY_PROPERTY
#undef USER_PROPERTY #undef USER_PROPERTY
if (refmodel->submit()) { if (refmodel->submit()) {
hideWarn(); hideWarn();
return true; return true;
} else { }
warn(tr("Submit to data base fail!")); else {
return false; warn(tr("Submit to data base fail!"));
} return false;
} }
return true; }
return true;
} }
void AccountFormDialog::setAccountInformation(const QMap<QString, QVariant> & values) { void AccountFormDialog::setAccountInformation(const QMap<QString, QVariant>& values) {
le_UserCode->setText(values["UserCode"].toString()); le_UserCode->setText(values["UserCode"].toString());
le_UserName->setText(values["UserName"].toString()); le_UserName->setText(values["UserName"].toString());
le_Comment->setText(values["Comment"].toString()); le_Comment->setText(values["Comment"].toString());
m_UserID = values["UserID"].toString(); m_UserID = values["UserID"].toString();
m_UserPwd = values["Password"].toString(); m_UserPwd = values["Password"].toString();
if (btn_Role){ if (btn_Role) {
m_RoleID = values["RoleID"].toString(); m_RoleID = values["RoleID"].toString();
btn_Role->setText(User::getRoleName(m_RoleID)); btn_Role->setText(User::getRoleName(m_RoleID));
} }
} }
void AccountFormDialog::warn(QString msg) { void AccountFormDialog::warn(QString msg) {
lbl_error->setText(msg); lbl_error->setText(msg);
lbl_error->setVisible(true); lbl_error->setVisible(true);
} }
void AccountFormDialog::hideWarn() { void AccountFormDialog::hideWarn() {
this->lbl_error->setVisible(false); this->lbl_error->setVisible(false);
} }

View File

@@ -7,7 +7,7 @@
#include <QHBoxLayout> #include <QHBoxLayout>
#include <QToolButton> #include <QToolButton>
#include <QHeaderView> #include <QHeaderView>
#include <src/components/AccountRoleComboDelegate.h> #include "components/AccountRoleComboDelegate.h"
#include "guimacros.h" #include "guimacros.h"
#include "AlertDialog.h" #include "AlertDialog.h"
#include "db/SQLHelper.h" #include "db/SQLHelper.h"

View File

@@ -5,8 +5,8 @@
#include <QVBoxLayout> #include <QVBoxLayout>
#include <QLabel> #include <QLabel>
#include <QtWidgets/QLineEdit> #include <QtWidgets/QLineEdit>
#include <src/models/User.h> #include "models/User.h"
#include <src/log/UserOperationLog.h> #include "log/UserOperationLog.h"
#include "ChangePasswordFormDialog.h" #include "ChangePasswordFormDialog.h"
ChangePasswordFormDialog::ChangePasswordFormDialog(QWidget* parent, Qt::WindowFlags f) : GUIFormBaseDialog(parent, f) { ChangePasswordFormDialog::ChangePasswordFormDialog(QWidget* parent, Qt::WindowFlags f) : GUIFormBaseDialog(parent, f) {

View File

@@ -6,35 +6,35 @@
#include <QVBoxLayout> #include <QVBoxLayout>
#include <QHBoxLayout> #include <QHBoxLayout>
#include <QPushButton> #include <QPushButton>
GUIFormBaseDialog::GUIFormBaseDialog(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f) { GUIFormBaseDialog::GUIFormBaseDialog(QWidget* parent, Qt::WindowFlags f) : QDialog(parent, f) {
this->setObjectName("formDialog"); this->setObjectName("formDialog");
this->setWindowFlags (Qt :: FramelessWindowHint | Qt :: Dialog); this->setWindowFlags(Qt::FramelessWindowHint | Qt::Dialog);
// this->setFixedSize(500,600); // this->setFixedSize(500,600);
this->setFixedWidth(500); this->setFixedWidth(500);
this->formWidget = new QWidget(this); this->formWidget = new QWidget(this);
this->formWidget->setObjectName("formWidget"); this->formWidget->setObjectName("formWidget");
QVBoxLayout* vLayout = new QVBoxLayout(this); QVBoxLayout* vLayout = new QVBoxLayout(this);
// vLayout->setContentsMargins(680,100,680,100); // vLayout->setContentsMargins(680,100,680,100);
vLayout->addWidget(formWidget); vLayout->addWidget(formWidget);
QWidget* btnWidget= new QWidget(this); QWidget* btnWidget = new QWidget(this);
vLayout->addWidget(btnWidget); vLayout->addWidget(btnWidget);
QHBoxLayout* hLayout = new QHBoxLayout(btnWidget); QHBoxLayout* hLayout = new QHBoxLayout(btnWidget);
btnOk= new QPushButton(btnWidget); btnOk = new QPushButton(btnWidget);
btnOk->setText("OK"); btnOk->setText(tr("OK"));
btnCancel = new QPushButton(btnWidget); btnCancel = new QPushButton(btnWidget);
btnCancel->setText("Cancel"); btnCancel->setText(tr("Cancel"));
hLayout->addWidget(btnOk); hLayout->addWidget(btnOk);
hLayout->addWidget(btnCancel); hLayout->addWidget(btnCancel);
btnOk->setObjectName("btnOK"); btnOk->setObjectName(tr("btnOK"));
connect(btnOk, &QPushButton::clicked, [t=this](){ connect(btnOk, &QPushButton::clicked, [t = this]() {
if(t->updateReferenceData()) if (t->updateReferenceData())
t->accept(); t->accept();
}); });
connect(btnCancel, &QPushButton::clicked, [t=this](){ connect(btnCancel, &QPushButton::clicked, [t = this]() {
t->reject(); t->reject();
}); });
} }
GUIFormBaseDialog::~GUIFormBaseDialog() { GUIFormBaseDialog::~GUIFormBaseDialog() {
@@ -42,24 +42,24 @@ GUIFormBaseDialog::~GUIFormBaseDialog() {
} }
void GUIFormBaseDialog::setButtonMode(DialogButtonMode mode) { void GUIFormBaseDialog::setButtonMode(DialogButtonMode mode) {
switch (mode) { switch (mode) {
case OkOnly: case OkOnly:
{ {
btnOk->setVisible(true); btnOk->setVisible(true);
btnCancel->setVisible(false); btnCancel->setVisible(false);
return; return;
} }
case OkAndCancel: case OkAndCancel:
{ {
btnOk->setVisible(true); btnOk->setVisible(true);
btnCancel->setVisible(true); btnCancel->setVisible(true);
return; return;
} }
case None: case None:
default: default:
{ {
btnOk->setVisible(false); btnOk->setVisible(false);
btnCancel->setVisible(false); btnCancel->setVisible(false);
} }
} }
} }

View File

@@ -14,7 +14,7 @@
#include <QImage> #include <QImage>
#include <QPainter> #include <QPainter>
#include <qdebug.h> #include <qdebug.h>
#include <src/log/UserOperationLog.h> #include "log/UserOperationLog.h"
#include <QLabel> #include <QLabel>
#ifdef WIN32 #ifdef WIN32

View File

@@ -248,6 +248,8 @@ SelectFormWidget::SelectFormWidget(QWidget* parent) :
btnAdd->setEnabled(true); btnAdd->setEnabled(true);
}); });
} }

View File

@@ -5,7 +5,7 @@
#include "TopBarWidget.h" #include "TopBarWidget.h"
#include <QLabel> #include <QLabel>
#include <QHBoxLayout> #include <QHBoxLayout>
#include <src/components/RollingMessageWidget.h> #include "components/RollingMessageWidget.h"
#include <QDateTime> #include <QDateTime>
#include "event/EventCenter.h" #include "event/EventCenter.h"
#include "errorhandle/GUIErrorLW.h" #include "errorhandle/GUIErrorLW.h"

View File

@@ -9,7 +9,7 @@
#include <QDate> #include <QDate>
#include <QDateTime> #include <QDateTime>
#include <qdebug.h> #include <qdebug.h>
#include <src/appvals/AppGlobalValues.h> #include "appvals/AppGlobalValues.h"
#define TRIGGER_EVENT EventCenter::Default()->triggerEvent #define TRIGGER_EVENT EventCenter::Default()->triggerEvent

View File

@@ -2,7 +2,7 @@
// Created by Krad on 2021/12/17. // Created by Krad on 2021/12/17.
// //
#include <src/event/EventCenter.h> #include "event/EventCenter.h"
#include "GUIErrorLW.h" #include "GUIErrorLW.h"
#include <QChar> #include <QChar>

View File

@@ -8,13 +8,12 @@
#include <QLabel> #include <QLabel>
#include <QLineEdit> #include <QLineEdit>
#include <QEvent> #include <QEvent>
#include <src/event/EventCenter.h> #include "event/EventCenter.h"
#include "json/jsonobject.h" #include "json/jsonobject.h"
#include "SelectDialog.h" #include "SelectDialog.h"
#include "locker.h" #include "locker.h"
#include "languageswitcher.h" #include "languageswitcher.h"
#include "event/EventCenter.h"
GeneralForm::GeneralForm(QWidget* parent) : QWidget(parent) GeneralForm::GeneralForm(QWidget* parent) : QWidget(parent)
{ {
@@ -100,9 +99,8 @@ GeneralForm::GeneralForm(QWidget* parent) : QWidget(parent)
//take effect //take effect
JsonObject::Instance()->setDefaultLanguage(lan); JsonObject::Instance()->setDefaultLanguage(lan);
LanguageSwitcher::Instance()->setDefaultLanguage(lan); LanguageSwitcher::Instance()->setDefaultLanguage(lan);
btnLan->setText(JsonObject::Instance()->defaultLanguage()); btnLan->setText(JsonObject::Instance()->defaultLanguage());
EventCenter::Default()->triggerEvent(ReloadLanguage, nullptr, nullptr);
} }
}); });

View File

@@ -10,7 +10,7 @@
btn##name->setIcon(QIcon(img));\ btn##name->setIcon(QIcon(img));\
btn##name->setIconSize(QSize(size,size));\ btn##name->setIconSize(QSize(size,size));\
btn##name->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);\ btn##name->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);\
btn##name->setText(tr(#name));\ btn##name->setText(QObject::tr(#name));\
layout->addWidget(btn##name); layout->addWidget(btn##name);
#define ADD_TOOL_BTN_TO_LAYOUT(name,img,layout)\ #define ADD_TOOL_BTN_TO_LAYOUT(name,img,layout)\

View File

@@ -40,10 +40,10 @@ void JsonObject::setJsonString(const char* catergory, const char* stringName, co
char* JsonObject::getJsonString(const char* catergory, const char* stringName) char* JsonObject::getJsonString(const char* catergory, const char* stringName)
{ {
if (!loadcfg()) if (!loadcfg())
return ""; return nullptr;
cJSON* first = cJSON_GetObjectItem((cJSON*)json_root, catergory); cJSON* first = cJSON_GetObjectItem((cJSON*)json_root, catergory);
if (!first) return ""; if (!first) return nullptr;
cJSON* second = cJSON_GetObjectItem(first, stringName); cJSON* second = cJSON_GetObjectItem(first, stringName);
return second->valuestring; return second->valuestring;
@@ -52,13 +52,13 @@ char* JsonObject::getJsonString(const char* catergory, const char* stringName)
char* JsonObject::getArrayNode(const char* catergory, const char* stringName, int index, const char* id) char* JsonObject::getArrayNode(const char* catergory, const char* stringName, int index, const char* id)
{ {
if (!loadcfg()) if (!loadcfg())
return ""; return nullptr;
cJSON* first = cJSON_GetObjectItem((cJSON*)json_root, catergory); cJSON* first = cJSON_GetObjectItem((cJSON*)json_root, catergory);
if (!first) return ""; if (!first) return nullptr;
cJSON* second = cJSON_GetObjectItem(first, stringName); cJSON* second = cJSON_GetObjectItem(first, stringName);
if (!second) return ""; if (!second) return nullptr;
cJSON* third = cJSON_GetArrayItem(second, index); cJSON* third = cJSON_GetArrayItem(second, index);

View File

@@ -1,5 +1,6 @@
#include "languageswitcher.h" #include "languageswitcher.h"
#include <QTranslator> #include <QTranslator>
#include "event/EventCenter.h"
LanguageSwitcher* LanguageSwitcher::lsw = Q_NULLPTR; LanguageSwitcher* LanguageSwitcher::lsw = Q_NULLPTR;
@@ -31,5 +32,6 @@ void LanguageSwitcher::setDefaultLanguage(QString str)
//qDebug() << "installTranslator"; //qDebug() << "installTranslator";
//QApplication::installTranslator(translator); //QApplication::installTranslator(translator);
} }
EventCenter::Default()->triggerEvent(ReloadLanguage, nullptr, nullptr);
} }

View File

@@ -2,7 +2,7 @@
#include <QTimer> #include <QTimer>
#include "appvals/AppGlobalValues.h" #include "appvals/AppGlobalValues.h"
#include <src/event/EventCenter.h> #include "event/EventCenter.h"
#include "json/jsonobject.h" #include "json/jsonobject.h"
Locker* Locker::locker = Q_NULLPTR; Locker* Locker::locker = Q_NULLPTR;

View File

@@ -14,19 +14,19 @@
#include "log/UserOperationLog.h" #include "log/UserOperationLog.h"
LoginWindow::LoginWindow(QWidget* parent) LoginWindow::LoginWindow(QWidget* parent)
: QDialog(parent) : QDialog(parent)
, m_pLoginButton(nullptr) , m_pLoginButton(nullptr)
, m_pVMainLayout(nullptr) , m_pVMainLayout(nullptr)
, m_pUserCodeFrame(nullptr) , m_pUserCodeFrame(nullptr)
, m_pUserCodeLayout(nullptr) , m_pUserCodeLayout(nullptr)
, m_pUserCodeEdit(nullptr) , m_pUserCodeEdit(nullptr)
, m_pPassWordEdit(nullptr) , m_pPassWordEdit(nullptr)
{ {
initUi(); initUi();
init(); init();
setWindowFlags(windowFlags() | Qt::Window | Qt::FramelessWindowHint | Qt::WindowSystemMenuHint); setWindowFlags(windowFlags() | Qt::Window | Qt::FramelessWindowHint | Qt::WindowSystemMenuHint);
//Dialog::Instance()->InitForm(); //Dialog::Instance()->InitForm();
m_pUserCodeEdit->setText("usct"); m_pUserCodeEdit->setText(tr("usct"));
} }
LoginWindow::~LoginWindow() LoginWindow::~LoginWindow()
@@ -37,75 +37,76 @@ LoginWindow::~LoginWindow()
void LoginWindow::initUi() void LoginWindow::initUi()
{ {
QString style = "*{background-color:#3c3c3c; color:white;margin:0;font-size:16px;}" QString style = "*{background-color:#3c3c3c; color:white;margin:0;font-size:16px;}"
"QLabel#title{font-Size:98px;color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1," "QLabel#title{font-Size:98px;color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,"
"stop: 0.0 darkgray, stop: 0.5 lightgray, stop: 1.0 darkgray);}" "stop: 0.0 darkgray, stop: 0.5 lightgray, stop: 1.0 darkgray);}"
"QLabel#warn{color:#930000;background:transparent;font-size:20px;}" "QLabel#warn{color:#930000;background:transparent;font-size:20px;}"
"QFrame#login_frame_username{min-width:700px;max-width:700px;max-height:500px;min-height:500px;" "QFrame#login_frame_username{min-width:700px;max-width:700px;max-height:500px;min-height:500px;"
"border:1px solid #0078d8;border-radius:20px;" "border:1px solid #0078d8;border-radius:20px;"
"background:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,\n" "background:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,\n"
" stop: 0.0 darkgray, stop: 0.5 gray, stop: 1.0 darkgray);" " stop: 0.0 darkgray, stop: 0.5 gray, stop: 1.0 darkgray);"
"}" "}"
"QLineEdit{min-height:100px;max-height:100px; border:1px solid silver;border-radius:10px;font-size:26px;}" "QLineEdit{min-height:100px;max-height:100px; border:1px solid silver;border-radius:10px;font-size:26px;}"
"QLineEdit:enabled{background-color: #515151}" "QLineEdit:enabled{background-color: #515151}"
"QComboBox{text-align:center;min-height:100px;max-height:100px; " "QComboBox{text-align:center;min-height:100px;max-height:100px; "
"border:1px solid silver;border-radius:10px;padding:3px}" "border:1px solid silver;border-radius:10px;padding:3px}"
"QComboBox:enabled{background-color: #515151}" "QComboBox:enabled{background-color: #515151}"
"QComboBox::drop-down{width:80px;border-radius:10px}" "QComboBox::drop-down{width:80px;border-radius:10px}"
"QComboBox QAbstractItemView{min-width:120px;}" "QComboBox QAbstractItemView{min-width:120px;}"
"QComboBox QAbstractItemView::item {min-height:60px;max-height:60px; border:1px solid white;}" "QComboBox QAbstractItemView::item {min-height:60px;max-height:60px; border:1px solid white;}"
"QToolButton{min-height:100px;max-height:100px;border:1px solid #505050;" "QToolButton{min-height:100px;max-height:100px;border:1px solid #505050;"
"border-radius:10%;font-size:26px; font-weight:Bold;padding:5px;}" "border-radius:10%;font-size:26px; font-weight:Bold;padding:5px;}"
"QToolButton:hover{background:#505050;}"; "QToolButton:hover{background:#505050;}";
setStyleSheet(style); setStyleSheet(style);
m_pVMainLayout = new QVBoxLayout(this); m_pVMainLayout = new QVBoxLayout(this);
m_pVMainLayout->setContentsMargins(0, 0, 0, 0); m_pVMainLayout->setContentsMargins(0, 0, 0, 0);
m_pVMainLayout->setSpacing(0); m_pVMainLayout->setSpacing(0);
m_pVMainLayout->addSpacerItem(new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding)); m_pVMainLayout->addSpacerItem(new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding));
QLabel* title = new QLabel(this); QLabel* title = new QLabel(this);
title->setObjectName("title"); title->setObjectName("title");
title->setText("U S C T"); title->setText(tr("U S C T"));
m_pVMainLayout->addWidget(title, 0, Qt::AlignCenter); m_pVMainLayout->addWidget(title, 0, Qt::AlignCenter);
m_pUserCodeFrame = new QFrame(this); m_pUserCodeFrame = new QFrame(this);
m_pUserCodeFrame->setObjectName("login_frame_username"); m_pUserCodeFrame->setObjectName("login_frame_username");
m_pUserCodeLayout = new QVBoxLayout(m_pUserCodeFrame); m_pUserCodeLayout = new QVBoxLayout(m_pUserCodeFrame);
m_pUserCodeLayout->setSpacing(30); m_pUserCodeLayout->setSpacing(30);
m_pUserCodeLayout->setContentsMargins(20, 60, 20, 20); m_pUserCodeLayout->setContentsMargins(20, 60, 20, 20);
warn = new QLabel(this); warn = new QLabel(this);
warn->setObjectName("warn"); warn->setObjectName("warn");
warn->setText("Login failed, username or password error!"); warn->setText("Login failed, username or password error!");
warn->setVisible(false); warn->setVisible(false);
m_pUserCodeLayout->addWidget(warn, 0, Qt::AlignCenter); m_pUserCodeLayout->addWidget(warn, 0, Qt::AlignCenter);
m_pUserCodeEdit = new QLineEdit(m_pUserCodeFrame); m_pUserCodeEdit = new QLineEdit(m_pUserCodeFrame);
m_pUserCodeEdit->setObjectName("combobox_UserName"); m_pUserCodeEdit->setObjectName("combobox_UserName");
//m_pUserCodeEdit->setLineEdit(new QLineEdit(m_pUserCodeFrame)); //m_pUserCodeEdit->setLineEdit(new QLineEdit(m_pUserCodeFrame));
m_pUserCodeEdit->setPlaceholderText(tr("Username")); m_pUserCodeEdit->setPlaceholderText(tr("Username"));
m_pUserCodeLayout->addWidget(m_pUserCodeEdit); m_pUserCodeLayout->addWidget(m_pUserCodeEdit);
m_pVMainLayout->addWidget(m_pUserCodeFrame, 0, Qt::AlignCenter); m_pVMainLayout->addWidget(m_pUserCodeFrame, 0, Qt::AlignCenter);
m_pPassWordEdit = new QLineEdit(this); m_pPassWordEdit = new QLineEdit(this);
m_pPassWordEdit->setObjectName("edt_Password"); m_pPassWordEdit->setObjectName("edt_Password");
m_pPassWordEdit->setEchoMode(QLineEdit::Password); m_pPassWordEdit->setEchoMode(QLineEdit::Password);
m_pPassWordEdit->setPlaceholderText(tr("Password")); m_pPassWordEdit->setPlaceholderText(tr("Password"));
m_pUserCodeLayout->addWidget(m_pPassWordEdit); m_pUserCodeLayout->addWidget(m_pPassWordEdit);
ADD_TOOL_BTN_TO_LAYOUT(login, ":/icons/login.png", m_pUserCodeLayout); ADD_TOOL_BTN_TO_LAYOUT(login, ":/icons/login.png", m_pUserCodeLayout);
m_pUserCodeLayout->removeWidget(btnlogin);
m_pUserCodeLayout->addWidget(btnlogin, 0, Qt::AlignCenter);
m_pLoginButton = btnlogin;
// m_pUserCodeLayout->addWidget(m_pLoginButton, 0, Qt::AlignCenter);
m_pVMainLayout->addSpacerItem(new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding));
initUserList(); m_pUserCodeLayout->removeWidget(btnlogin);
m_pUserCodeLayout->addWidget(btnlogin, 0, Qt::AlignCenter);
m_pLoginButton = btnlogin;
// m_pUserCodeLayout->addWidget(m_pLoginButton, 0, Qt::AlignCenter);
m_pVMainLayout->addSpacerItem(new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding));
initUserList();
} }
void LoginWindow::init() void LoginWindow::init()
{ {
connect(m_pLoginButton, SIGNAL(clicked()), this, SLOT(doLogin())); connect(m_pLoginButton, SIGNAL(clicked()), this, SLOT(doLogin()));
} }
void LoginWindow::initUserList() void LoginWindow::initUserList()
@@ -114,31 +115,31 @@ void LoginWindow::initUserList()
void LoginWindow::clearInputData() void LoginWindow::clearInputData()
{ {
m_pUserCodeEdit->clear(); m_pUserCodeEdit->clear();
m_pPassWordEdit->clear(); m_pPassWordEdit->clear();
//m_pUserCodeEdit->setFocus(); //m_pUserCodeEdit->setFocus();
} }
void LoginWindow::doLogin() void LoginWindow::doLogin()
{ {
QString strUserCode = m_pUserCodeEdit->text(); QString strUserCode = m_pUserCodeEdit->text();
QString strPassWord = m_pPassWordEdit->text(); QString strPassWord = m_pPassWordEdit->text();
QString encryptedPassword = strPassWord; QString encryptedPassword = strPassWord;
strPassWord = "123456"; strPassWord = "123456";
QString encryptPwd = User::getEncryptedPassword(strPassWord); QString encryptPwd = User::getEncryptedPassword(strPassWord);
QString sql = QString("select UserCode from Account where UserCode='%1' and Password='%2'") QString sql = QString("select UserCode from Account where UserCode='%1' and Password='%2'")
.arg(strUserCode).arg(encryptPwd); .arg(strUserCode).arg(encryptPwd);
if(User::QueryUser(strUserCode,encryptPwd)) if (User::QueryUser(strUserCode, encryptPwd))
{ {
accept(); accept();
LOG_USER_OPERATION(Login); LOG_USER_OPERATION(Login);
} }
else { else {
warn->setVisible(true); warn->setVisible(true);
} }
} }

View File

@@ -3,7 +3,7 @@
#include "loginwindow.h" #include "loginwindow.h"
#include "InputObject.h" #include "InputObject.h"
#include <QQmlApplicationEngine> #include <QQmlApplicationEngine>
#include <src/db/SQLHelper.h> #include "db/SQLHelper.h"
#include <QTextCodec> #include <QTextCodec>
#include <QFontDatabase> #include <QFontDatabase>
#include <QDebug> #include <QDebug>
@@ -47,10 +47,16 @@ int main(int argc, char* argv[])
QTextCodec* codec = QTextCodec::codecForName("utf8"); QTextCodec* codec = QTextCodec::codecForName("utf8");
QTextCodec::setCodecForLocale(codec); QTextCodec::setCodecForLocale(codec);
//multi-language suppport
QTranslator translator;
LanguageSwitcher::Instance()->setTranslator(&translator);
LanguageSwitcher::Instance()->setDefaultLanguage(JsonObject::Instance()->defaultLanguage());
a.installTranslator(&translator);
//QString fontName = loadFontFromFile(":/fonts/MicrosoftYahei.ttf"); //QString fontName = loadFontFromFile(":/fonts/MicrosoftYahei.ttf");
QString fontName = loadFontFromFile(":/fonts/DroidSansFallback.ttf"); QString fontName = loadFontFromFile(":/fonts/DroidSansFallback.ttf");
QFont font(fontName); QFont font(fontName);
QApplication::setFont(font); QApplication::setFont(font);
@@ -65,11 +71,7 @@ int main(int argc, char* argv[])
//QObject::connect(obj, SIGNAL(touchScreen()), Locker::Instance(), SLOT(refreshTimer())); //QObject::connect(obj, SIGNAL(touchScreen()), Locker::Instance(), SLOT(refreshTimer()));
//multi-language suppport
QTranslator translator;
LanguageSwitcher::Instance()->setTranslator(&translator);
LanguageSwitcher::Instance()->setDefaultLanguage(JsonObject::Instance()->defaultLanguage());
a.installTranslator(&translator);
QStringList app_args = a.arguments(); QStringList app_args = a.arguments();

View File

@@ -3,7 +3,7 @@
#include <qtabwidget.h> #include <qtabwidget.h>
#include <QSizePolicy> #include <QSizePolicy>
#include <QHBoxLayout> #include <QHBoxLayout>
#include <src/event/EventCenter.h> #include "event/EventCenter.h"
#include "tabformwidget.h" #include "tabformwidget.h"
#include "SelectFormWidget.h" #include "SelectFormWidget.h"
#include "ScanFormWidget.h" #include "ScanFormWidget.h"
@@ -82,14 +82,14 @@ MainWindow::MainWindow(QWidget* parent) :
"QComboBox QAbstractItemView::item {min-height:60px;max-height:60px; border:1px solid white;}" "QComboBox QAbstractItemView::item {min-height:60px;max-height:60px; border:1px solid white;}"
//"QScrollBar:vertical {min-width: 50px;}" //"QScrollBar:vertical {min-width: 50px;}"
"QLabel{color:white; font-weight:bold; font-size:16px;}\n" "QLabel{color:white; font-weight:bold; font-size:16px;}\n"
"QLabel#sliderPickerLabel{color:silver;padding:0;background:#505050;font-weight:normal;font-size:50px;}\n" "QLabel#sliderPickerLabel{color:silver;padding:0;background:#505050;font-weight:normal;font-size:50px;}\n"
"QWidget#topbarWidget{min-height:36px;max-height:36px;}\n" "QWidget#topbarWidget{min-height:36px;max-height:36px;}\n"
"QWidget#contentWidget{border-top:1px solid #515151;}\n" "QWidget#contentWidget{border-top:1px solid #515151;}\n"
"QWidget#commandWidget{min-height:123px;max-height:123px;border-top:1px solid #515151; border-bottom:1px solid #323232;}\n" "QWidget#commandWidget{min-height:123px;max-height:123px;border-top:1px solid #515151; border-bottom:1px solid #323232;}\n"
"QLabel#logo{min-width:30px;max-width:30px}\n" "QLabel#logo{min-width:30px;max-width:30px}\n"
"QLabel#company{min-width:150px;max-width:150px; }\n" "QLabel#company{min-width:150px;max-width:150px; }\n"
"QLabel#systemMsgBar{min-width:500px;}" "QLabel#systemMsgBar{min-width:500px;}"
"QLabel#warn{color:#CCCC00;background:transparent;font-size:20px;}" "QLabel#warn{color:#CCCC00;background:transparent;font-size:20px;}"
"QWidget QWidget#statusBarWidget{min-width:300px;}\n" "QWidget QWidget#statusBarWidget{min-width:300px;}\n"
"QWidget QToolButton{border:none;border-radius:10%;font-size:26px; font-weight:Bold;padding:5px;}\n" "QWidget QToolButton{border:none;border-radius:10%;font-size:26px; font-weight:Bold;padding:5px;}\n"
"QToolButton#btn_main{border:2px solid #0078d8;border-radius:10%;font-size:26px; font-weight:Bold;padding:5px;}\n" "QToolButton#btn_main{border:2px solid #0078d8;border-radius:10%;font-size:26px; font-weight:Bold;padding:5px;}\n"
@@ -103,32 +103,32 @@ MainWindow::MainWindow(QWidget* parent) :
"QDialog QWidget#innerWidget{ background:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1," "QDialog QWidget#innerWidget{ background:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,"
"stop: 0.0 darkgray, stop: 0.5 lightgray, stop: 1.0 darkgray);" "stop: 0.0 darkgray, stop: 0.5 lightgray, stop: 1.0 darkgray);"
"border-radius:20px;border:5px solid #0078d8; }" "border-radius:20px;border:5px solid #0078d8; }"
"QDialog#MessageDialog QWidget QWidget{ background:transparent;color:#3078d8}" "QDialog#MessageDialog QWidget QWidget{ background:transparent;color:#3078d8}"
"QDialog#MessageDialog QWidget QWidget QLabel{ font-size:30px}" "QDialog#MessageDialog QWidget QWidget QLabel{ font-size:30px}"
"#spacer_1, #spacer_2{min-width:2px;max-width:2px;margin-top:6px;margin-bottom:6px;border-right:1px solid #0078d8;}" "#spacer_1, #spacer_2{min-width:2px;max-width:2px;margin-top:6px;margin-bottom:6px;border-right:1px solid #0078d8;}"
//FormDialog //FormDialog
"QPushButton{border:1px solid silver ;padding-left:50px;padding-right:50px; border-radius:5px; min-height:28px; max-height:28px; background:#4c5052}" "QPushButton{border:1px solid silver ;padding-left:50px;padding-right:50px; border-radius:5px; min-height:28px; max-height:28px; background:#4c5052}"
"QPushButton#btnOK{background:#365880; font-weight:bold}" "QPushButton#btnOK{background:#365880; font-weight:bold}"
"QDialog#formDialog{border:3px solid silver; border-radius:8px}" "QDialog#formDialog{border:3px solid silver; border-radius:8px}"
"QWidget#slider_one{border:1px solid silver; border-radius:8px}" "QWidget#slider_one{border:1px solid silver; border-radius:8px}"
"QWidget#formWidget QLabel#endline{border-bottom:1px solid silver}" "QWidget#formWidget QLabel#endline{border-bottom:1px solid silver}"
"QWidget#formWidget QLabel#title{font-size:30px; border-bottom:1px solid #3078d8 }" "QWidget#formWidget QLabel#title{font-size:30px; border-bottom:1px solid #3078d8 }"
"QListView{border:none;margin:5px; font-weight:bold}" "QListView{border:none;margin:5px; font-weight:bold}"
"QListView::item{background:#4c5052;min-height:30px; border:1px solid silver; border-radius:5px}" "QListView::item{background:#4c5052;min-height:30px; border:1px solid silver; border-radius:5px}"
"QListView::item:selected{background:#365880; font-weight:bold;color:white}" "QListView::item:selected{background:#365880; font-weight:bold;color:white}"
"QHeaderView::section{background-color:#595959;" "QHeaderView::section{background-color:#595959;"
"min-height:50px;max-height:50px;" "min-height:50px;max-height:50px;"
"font-weight:Bold; font-size:16px; border:1px solid #323232;}" "font-weight:Bold; font-size:16px; border:1px solid #323232;}"
"QHeaderView::section:horizontal{border-bottom: 1px solid rgb(0,170,255);}" "QHeaderView::section:horizontal{border-bottom: 1px solid rgb(0,170,255);}"
"QHeaderView::section:vertical{min-height:36px;max-height:36px;}" "QHeaderView::section:vertical{min-height:36px;max-height:36px;}"
"QWidget#edit_patient{min-width:300px;max-width:300px;}" "QWidget#edit_patient{min-width:300px;max-width:300px;}"
"QTableView{border:none}" "QTableView{border:none}"
"QTableView{alternate-background-color: #595959;selection-color:white;selection-background-color:#0078d8}" "QTableView{alternate-background-color: #595959;selection-color:white;selection-background-color:#0078d8}"
"QToolButton#sexBtn{min-width:120px;max-width:120px;font-size:20px;padding:2px;}" "QToolButton#sexBtn{min-width:120px;max-width:120px;font-size:20px;padding:2px;}"
"QToolButton#sexBtn:disabled{color:silver}" "QToolButton#sexBtn:disabled{color:silver}"
"QWidget#sexpanelwidget{border:1px solid silver;}" "QWidget#sexpanelwidget{border:1px solid silver;}"
"QWidget#sexpanelwidget:enabled{background-color: #515151;}" "QWidget#sexpanelwidget:enabled{background-color: #515151;}"
"QToolButton#sexBtn:checked{border:2px solid darkorange;padding:0px;}" "QToolButton#sexBtn:checked{border:2px solid darkorange;padding:0px;}"
; ;
this->setStyleSheet(style); this->setStyleSheet(style);
ui->setupUi(this); ui->setupUi(this);
@@ -139,47 +139,48 @@ MainWindow::MainWindow(QWidget* parent) :
tab->setCurrentIndex(1); tab->setCurrentIndex(1);
}); });
SelectFormWidget* select_form = new SelectFormWidget(this); SelectFormWidget* select_form = new SelectFormWidget(this);
tab->addTab(select_form, "Select"); tab->addTab(select_form, tr("Select"));
ScanFormWidget* scan_form = new ScanFormWidget(this); ScanFormWidget* scan_form = new ScanFormWidget(this);
tab->addTab(scan_form, "Scan"); tab->addTab(scan_form, tr("Scan"));
TabFormWidget* verify_form = new TabFormWidget(this); TabFormWidget* verify_form = new TabFormWidget(this);
tab->addTab(verify_form, "Verify"); tab->addTab(verify_form, tr("Verify"));
tab->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); tab->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
QVBoxLayout* layout = new QVBoxLayout(this); QVBoxLayout* layout = new QVBoxLayout(this);
layout->setMargin(0); layout->setMargin(0);
layout->setSpacing(0); layout->setSpacing(0);
QWidget * top = new TopBarWidget(this); QWidget* top = new TopBarWidget(this);
top->setObjectName("topbarWidget"); top->setObjectName("topbarWidget");
layout->addWidget(top); layout->addWidget(top);
layout->addWidget(tab); layout->addWidget(tab);
ui->centralWidget->setLayout(layout); ui->centralWidget->setLayout(layout);
this->setWindowFlags(Qt::Window); this->setWindowFlags(Qt::Window);
connect(EventCenter::Default(), &EventCenter::DeviceErrorRaise, [=](QObject* parent, QObject* msg) { connect(EventCenter::Default(), &EventCenter::DeviceErrorRaise, [=](QObject* parent, QObject* msg) {
//默认旧模式 //默认旧模式
if (!msgDialog) { if (!msgDialog) {
msgDialog = new GUIMessageDialog(this); msgDialog = new GUIMessageDialog(this);
msgDialog->setStyleSheet(style); msgDialog->setStyleSheet(style);
} }
if (msg) { if (msg) {
QString *str = (QString *) msg; QString* str = (QString*)msg;
msgDialog->showMessage(*str); msgDialog->showMessage(*str);
} else { }
msgDialog->showMessage("Something went error!"); else {
} msgDialog->showMessage("Something went error!");
msgDialog->stopLoading(); }
msgDialog->showExitButton(); msgDialog->stopLoading();
if (msgDialog->isHidden()){ msgDialog->showExitButton();
msgDialog->setWindowModality(Qt::NonModal); if (msgDialog->isHidden()) {
msgDialog->exec(); msgDialog->setWindowModality(Qt::NonModal);
} msgDialog->exec();
}); }
});
connect(EventCenter::Default(), &EventCenter::InvokeOperationStart, [=](QObject*, QObject* msg) { connect(EventCenter::Default(), &EventCenter::InvokeOperationStart, [=](QObject*, QObject* msg) {
if (msgDialog){ if (msgDialog) {
msgDialog->hide(); msgDialog->hide();
delete msgDialog; delete msgDialog;
} }
msgDialog = new GUIMessageDialog(this); msgDialog = new GUIMessageDialog(this);
if (msg) if (msg)
{ {
QString* str = (QString*)msg; QString* str = (QString*)msg;
@@ -191,11 +192,11 @@ MainWindow::MainWindow(QWidget* parent) :
msgDialog->hideExitButton(); msgDialog->hideExitButton();
msgDialog->startLoading(); msgDialog->startLoading();
AppGlobalValues::setInProcessing(true); AppGlobalValues::setInProcessing(true);
// msgDialog->showFullScreen(); // msgDialog->showFullScreen();
if (msgDialog->isHidden()){ if (msgDialog->isHidden()) {
msgDialog->show(); msgDialog->show();
} }
}); });
connect(EventCenter::Default(), &EventCenter::InvokeOperationProgress, [=](QObject*, QObject* msg) { connect(EventCenter::Default(), &EventCenter::InvokeOperationProgress, [=](QObject*, QObject* msg) {
if (!msgDialog) msgDialog = new GUIMessageDialog(this); if (!msgDialog) msgDialog = new GUIMessageDialog(this);
if (msg) if (msg)
@@ -206,58 +207,70 @@ MainWindow::MainWindow(QWidget* parent) :
else { else {
msgDialog->hideMessage(); msgDialog->hideMessage();
} }
// msgDialog->showFullScreen(); // msgDialog->showFullScreen();
if (msgDialog->isHidden())msgDialog->show(); if (msgDialog->isHidden())msgDialog->show();
}); });
connect(EventCenter::Default(), &EventCenter::InvokeOperationEnd, [=]() { connect(EventCenter::Default(), &EventCenter::InvokeOperationEnd, [=]() {
if (!msgDialog) return; if (!msgDialog) return;
if (!msgDialog->isHidden())msgDialog->accept(); if (!msgDialog->isHidden())msgDialog->accept();
delete msgDialog; delete msgDialog;
msgDialog = nullptr; msgDialog = nullptr;
AppGlobalValues::setInProcessing(false); AppGlobalValues::setInProcessing(false);
}); });
connect(EventCenter::Default(), &EventCenter::RequestLogin, [=](QObject*, QObject* msg) { connect(EventCenter::Default(), &EventCenter::RequestLogin, [=](QObject*, QObject* msg) {
this->requestLogin(); this->requestLogin();
}); });
connect(EventCenter::Default(), &EventCenter::LoginRoleChanged, [=](QObject*, QObject*) { connect(EventCenter::Default(), &EventCenter::LoginRoleChanged, [=](QObject*, QObject*) {
if (User::Current()->isAdmin() ) if (User::Current()->isAdmin())
{ {
if (admin_tab_index == -1) if (admin_tab_index == -1)
{ {
AdminSettingForm * form = new AdminSettingForm(this); AdminSettingForm* form = new AdminSettingForm(this);
admin_tab_index = tab->addTab(form,"Admin"); admin_tab_index = tab->addTab(form, tr("Admin"));
} }
} else{ }
if (admin_tab_index != -1){ else {
tab->removeTab(admin_tab_index); if (admin_tab_index != -1) {
admin_tab_index = -1; tab->removeTab(admin_tab_index);
} admin_tab_index = -1;
} }
qApp->processEvents(); }
}); qApp->processEvents();
});
GUIErrorHandle::Default()->init(); GUIErrorHandle::Default()->init();
DeviceManager::Default()->initDevice(); DeviceManager::Default()->initDevice();
QThread* t = QThread::create([](){ QThread* t = QThread::create([]() {
QThread::sleep(10); QThread::sleep(10);
int f = 0x00100001; int f = 0x00100001;
for (int i = 0; i < 8; ++i) { for (int i = 0; i < 8; ++i) {
QThread::sleep(10); QThread::sleep(10);
f= f << (i*4); f = f << (i * 4);
printf("invoke %d\r\n", f); printf("invoke %d\r\n", f);
char* v = (char*)&f; char* v = (char*)&f;
QString msg; QString msg;
msg.append("w "); msg.append("w ");
msg.append(v[0]); msg.append(v[0]);
msg.append(v[1]); msg.append(v[1]);
msg.append(v[2]); msg.append(v[2]);
msg.append(v[3]); msg.append(v[3]);
EventCenter::Default()->triggerEvent(GUIErrorRaise,nullptr,(QObject*)&msg); EventCenter::Default()->triggerEvent(GUIErrorRaise, nullptr, (QObject*)&msg);
} }
}); });
t->start(); t->start();
centerWidgetHide(); centerWidgetHide();
connect(EventCenter::Default(), &EventCenter::ReloadLanguage, [=]() {
tab->setTabText(0, tr("Select"));
tab->setTabText(1, tr("Scan"));
tab->setTabText(2, tr("Verify"));
tab->setTabText(3, tr("Admin"));
});
} }
MainWindow::~MainWindow() MainWindow::~MainWindow()
@@ -276,7 +289,7 @@ void MainWindow::changeEvent(QEvent* event)
} }
void MainWindow::centerWidgetHide() { void MainWindow::centerWidgetHide() {
ui->centralWidget->setVisible(false); ui->centralWidget->setVisible(false);
} }
void MainWindow::centerWidgetShow() { void MainWindow::centerWidgetShow() {
@@ -291,19 +304,19 @@ QTextEdit* MainWindow::getEdit()
} }
void MainWindow::requestLogin() { void MainWindow::requestLogin() {
LoginWindow l(this); LoginWindow l(this);
l.setWindowModality(Qt::WindowModal); l.setWindowModality(Qt::WindowModal);
l.showFullScreen(); l.showFullScreen();
this->centerWidgetHide(); this->centerWidgetHide();
while(l.result() != QDialog::Accepted) while (l.result() != QDialog::Accepted)
{ {
l.exec(); l.exec();
} }
this->centerWidgetShow(); this->centerWidgetShow();
} }
void MainWindow::debugConsoleOn() { void MainWindow::debugConsoleOn() {
QTextEdit* text_edit = new QTextEdit(this); QTextEdit* text_edit = new QTextEdit(this);
ui->centralWidget->layout()->addWidget(text_edit); ui->centralWidget->layout()->addWidget(text_edit);
const QString edit_style = const QString edit_style =
"QScrollBar:vertical{border: 0px solid grey; background:#2d2d2d; width: 15px; margin: 0px 0 0px 0; }" "QScrollBar:vertical{border: 0px solid grey; background:#2d2d2d; width: 15px; margin: 0px 0 0px 0; }"

View File

@@ -18,7 +18,7 @@ GetAdminPsw::GetAdminPsw(QWidget* parent, Qt::WindowFlags f) : GUIFormBaseDialog
form->addRow(value1, _psw); form->addRow(value1, _psw);
lbl_error = new QLabel(this); lbl_error = new QLabel(this);
lbl_error->setObjectName("warn"); lbl_error->setObjectName(QString::fromUtf8("warn"));
form->addRow("", lbl_error); form->addRow("", lbl_error);
} }

View File

@@ -12,15 +12,16 @@ GetIPDialog::GetIPDialog(QWidget* parent, Qt::WindowFlags f) : GUIFormBaseDialog
setWindowModality(Qt::WindowModal); setWindowModality(Qt::WindowModal);
QFormLayout* form = new QFormLayout(formWidget); QFormLayout* form = new QFormLayout(formWidget);
QString value1 = QString(tr("IP Address")); QLabel* value1 = new QLabel(tr("IP Address"));
_ip = new QLineEdit(this); _ip = new QLineEdit(this);
form->addRow(value1, _ip); form->addRow(value1, _ip);
QString value2 = QString(tr("Netmask"));
QLabel* value2 = new QLabel(tr("Netmask"));
_mask = new QLineEdit(this); _mask = new QLineEdit(this);
form->addRow(value2, _mask); form->addRow(value2, _mask);
lbl_error = new QLabel(this); lbl_error = new QLabel(this);
lbl_error->setObjectName(tr("warn")); lbl_error->setObjectName(QString::fromUtf8("warn"));
form->addRow("", lbl_error); form->addRow("", lbl_error);
} }

View File

@@ -30,12 +30,15 @@ networkCfgDialog::networkCfgDialog(QWidget* parent) :
model_route = new NetCfgTableModel(this); model_route = new NetCfgTableModel(this);
QStringList header_addr; QStringList header_addr;
header_addr << "IP Address" << "Netmask"; header_addr << tr("IP Address") << tr("Netmask");
model_addr->setHeader(header_addr); model_addr->setHeader(header_addr);
QStringList route_addr; QStringList route_addr;
route_addr << "Destination" << "Gateway" << "Netmask"; route_addr << tr("Destination") << tr("Gateway") << tr("Netmask");
model_route->setHeader(route_addr); model_route->setHeader(route_addr);
ui->btn_group->button(QDialogButtonBox::Apply)->setText(tr("Apply"));
ui->btn_group->button(QDialogButtonBox::Cancel)->setText(tr("Cancel"));
loadData(); loadData();
ui->tbl_addr->setModel(model_addr); ui->tbl_addr->setModel(model_addr);
@@ -62,6 +65,7 @@ networkCfgDialog::networkCfgDialog(QWidget* parent) :
ui->tbl_route->setColumnWidth(2, 230); ui->tbl_route->setColumnWidth(2, 230);
ui->tbl_route->horizontalHeader()->setFixedHeight(38); ui->tbl_route->horizontalHeader()->setFixedHeight(38);
connect(ui->btn_addr_add, &QPushButton::clicked, [=]() connect(ui->btn_addr_add, &QPushButton::clicked, [=]()
{ {
//GetIPDialog* dialog = new GetIPDialog(this); //GetIPDialog* dialog = new GetIPDialog(this);

View File

@@ -1,7 +1,7 @@
#include "tabformwidget.h" #include "tabformwidget.h"
#include "ui_tabformwidget.h" #include "ui_tabformwidget.h"
#include <QDateTime> #include <QDateTime>
#include <src/components/RollingMessageWidget.h> #include "components/RollingMessageWidget.h"
#include "event/EventCenter.h" #include "event/EventCenter.h"
#if defined(_MSC_VER) && (_MSC_VER >= 1600) #if defined(_MSC_VER) && (_MSC_VER >= 1600)

Binary file not shown.