avoids code duplication, and works for both graphical and non-graphical environments
| 242 | |
| 243 | // avoids code duplication, and works for both graphical and non-graphical environments |
| 244 | void displayMessageBox(const QString& title, const QString& message, const QMessageBox::Icon icon) { |
| 245 | if (isHeadless()) { |
| 246 | std::cerr << title.toStdString() << ": " << message.toStdString() << std::endl; |
| 247 | } else { |
| 248 | // little complex, can't use QMessageBox::{critical,warning,...} for the same reason as in main() |
| 249 | auto* mb = new QMessageBox(icon, title, message, QMessageBox::Ok, nullptr); |
| 250 | mb->show(); |
| 251 | QApplication::exec(); |
| 252 | } |
| 253 | } |
| 254 | |
| 255 | void displayError(const QString& message) { |
| 256 | displayMessageBox(QObject::tr("Error"), message, QMessageBox::Critical); |
no test coverage detected