1 /* vi: set sw=4 ts=4: 2 * 3 * Copyright (C) 2018 - 2020 Christian Hohnstaedt. 4 * 5 * All rights reserved. 6 */ 7 8 #ifndef __XCAWARNING_H 9 #define __XCAWARNING_H 10 11 #include "lib/base.h" 12 #include "lib/exception.h" 13 #include <QMessageBox> 14 #include <QMap> 15 #include <QSqlError> 16 17 #define XCA_INFO(msg) xcaWarning::information(msg) 18 #define XCA_WARN(msg) xcaWarning::warning(msg) 19 #define XCA_YESNO(msg) xcaWarning::yesno(msg) 20 #define XCA_OKCANCEL(msg) xcaWarning::okcancel(msg) 21 #define XCA_ERROR(err) xcaWarning::error(err) 22 #define XCA_SQLERROR(err) xcaWarning::sqlerror(err) 23 #define XCA_PASSWD_ERROR() XCA_WARN(QObject::tr("Password verify error, please try again")) 24 25 class xcaWarning: public QObject 26 { 27 Q_OBJECT 28 29 private: 30 QMessageBox *m; 31 QMessageBox::StandardButtons buttons; 32 QMap<QMessageBox::StandardButton, QString> button_texts; 33 QMessageBox::Icon icon; 34 QString msg; 35 36 public: 37 xcaWarning(QWidget *w, const QString &txt, 38 QMessageBox::Icon icn = QMessageBox::Warning); 39 ~xcaWarning(); 40 void setStandardButtons(QMessageBox::StandardButtons b); 41 void addButton(QMessageBox::StandardButton button, 42 const QString &text = QString()); 43 int exec(); 44 45 static void information(const QString &msg); 46 static void warning(const QString &msg); 47 static bool yesno(const QString &msg); 48 static bool okcancel(const QString &msg); 49 static void sqlerror(QSqlError err); 50 static void error(const errorEx &err); 51 }; 52 #endif 53