gestionale/argento/status.cpp

51 lines
1.8 KiB
C++

#include "status.h"
namespace Ui {
void status(StatusType type, QString message) {
//QStatusBar* statusBar = mw->statusBar();
QString prefix;
int timeout = 0;
/* choose background color */
if (statusBar != nullptr) {
switch (type) {
case INFO: /* statusBar->setStyleSheet("color: #007;"); */ break;
case SUCCESS: statusBar->setStyleSheet("color: #0a0;"); break;
case WARNING: statusBar->setStyleSheet("color: #f50;"); break;
case ERROR: statusBar->setStyleSheet("color: #d00;"); break;
default: statusBar->setStyleSheet("color: #555;"); break;
}
}
/* choose stderr prefix */
switch(type) {
case INFO: prefix = "[II]"; break;
case SUCCESS: prefix = "[OK]"; break;
case WARNING: prefix = "[WW]"; break;
case ERROR: prefix = "[EE]"; break;
default: prefix = "[??]"; break;
}
/* choose timeout */
switch (type) {
case INFO: case SUCCESS: timeout = 10000; break;
case WARNING: case ERROR: timeout = 0; break;
default: timeout = 0; break;
}
/* print on stderr */
switch (type) {
case INFO: case SUCCESS: qDebug().noquote() << prefix << message; break;
case WARNING: qWarning().noquote() << prefix << message; break;
case ERROR: qCritical().noquote() << prefix << message; break;
default: qWarning().noquote() << prefix << message; break;
}
/* show message in GUI */
if (statusBar != nullptr) {
statusBar->showMessage(message, timeout);
statusBar->repaint();
} else {
qDebug() << "[WW] status bar not ready";
}
}
}