New error handle, v0.1

This commit is contained in:
Krad
2021-12-03 14:22:50 +08:00
parent 3d317e757a
commit f36570c801
2 changed files with 39 additions and 12 deletions

View File

@@ -25,6 +25,7 @@ ADD_EVENT_VALUE(InvokeOperationProgress)\
ADD_EVENT_VALUE(InvokeOperationEnd)\ ADD_EVENT_VALUE(InvokeOperationEnd)\
ADD_EVENT_VALUE(PromptDialogOpen)\ ADD_EVENT_VALUE(PromptDialogOpen)\
ADD_EVENT_VALUE(GlobalBannerMessage)\ ADD_EVENT_VALUE(GlobalBannerMessage)\
ADD_EVENT_VALUE(WarnStateFlagChange)\
ADD_EVENT_VALUE(GUIErrorRaise) ADD_EVENT_VALUE(GUIErrorRaise)
enum GUIEvents{ enum GUIEvents{

View File

@@ -146,24 +146,50 @@ MainWindow::MainWindow(QWidget* parent) :
ui->centralWidget->setLayout(layout); ui->centralWidget->setLayout(layout);
this->setWindowFlags(Qt::Window); this->setWindowFlags(Qt::Window);
connect(EventCenter::Default(), &EventCenter::GUIErrorRaise, [=](QObject*, QObject* msg) { connect(EventCenter::Default(), &EventCenter::GUIErrorRaise, [=](QObject*, QObject* msg) {
QString str;
if (!msgDialog){ if (msg) {
str = *(QString *) msg;
} else {
str = "Something went error!";
}
if (str.isEmpty()) return;
//新模式,分级
if (str[1] == ' ') {
char c = str[0].toLower().toLatin1();
switch (c) {
//WARN 级别
case 'w': {
char buff[4] = {0, 0, 0, 0};
buff[0] = str[2].toLatin1();
buff[1] = str[3].toLatin1();
buff[2] = str[4].toLatin1();
buff[3] = str[5].toLatin1();
QByteArray bytes(buff);
EventCenter::Default()->triggerEvent(GUIEvents::WarnStateFlagChange, nullptr,(QObject*)(&bytes));
return;
}
//ERROR 级别
case 'e':
default:
break;
}
}
//默认旧模式
if (!msgDialog) {
msgDialog = new GUIMessageDialog; msgDialog = new GUIMessageDialog;
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->stopLoading();
msgDialog->showExitButton(); msgDialog->showExitButton();
// msgDialog->showFullScreen(); // msgDialog->showFullScreen();
if (msgDialog->isHidden())msgDialog->show(); if (msgDialog->isHidden())msgDialog->show();
}); });
connect(EventCenter::Default(), &EventCenter::InvokeOperationStart, [=](QObject*, QObject* msg) { connect(EventCenter::Default(), &EventCenter::InvokeOperationStart, [=](QObject*, QObject* msg) {
if (msgDialog){ if (msgDialog){
msgDialog->hide(); msgDialog->hide();