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(PromptDialogOpen)\
ADD_EVENT_VALUE(GlobalBannerMessage)\
ADD_EVENT_VALUE(WarnStateFlagChange)\
ADD_EVENT_VALUE(GUIErrorRaise)
enum GUIEvents{

View File

@@ -146,24 +146,50 @@ MainWindow::MainWindow(QWidget* parent) :
ui->centralWidget->setLayout(layout);
this->setWindowFlags(Qt::Window);
connect(EventCenter::Default(), &EventCenter::GUIErrorRaise, [=](QObject*, QObject* msg) {
if (!msgDialog){
QString str;
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->setStyleSheet(style);
}
if (msg)
{
QString* str = (QString*)msg;
msgDialog->showMessage(*str);
}
else {
msgDialog->showMessage("Something went error!");
}
msgDialog->stopLoading();
if (msg) {
QString *str = (QString *) msg;
msgDialog->showMessage(*str);
} else {
msgDialog->showMessage("Something went error!");
}
msgDialog->stopLoading();
msgDialog->showExitButton();
// msgDialog->showFullScreen();
if (msgDialog->isHidden())msgDialog->show();
});
});
connect(EventCenter::Default(), &EventCenter::InvokeOperationStart, [=](QObject*, QObject* msg) {
if (msgDialog){
msgDialog->hide();