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