31 #include "gui/custommessagebox.h"
33 #include "miscellaneous/iconfactory.h"
34 #include "miscellaneous/application.h"
37 #include <QDialogButtonBox>
38 #include <QPushButton>
39 #include <QDialogButtonBox>
46 CustomMessageBox::~CustomMessageBox() {
51 int icon_size = qApp->style()->pixelMetric(QStyle::PM_MessageBoxIconSize, 0,
this);
53 setIconPixmap(iconForStatus(icon).pixmap(icon_size, icon_size));
57 foreach (QAbstractButton *button, button_box->buttons()) {
58 button->setIcon(iconForRole(button_box->standardButton(button)));
62 QIcon CustomMessageBox::iconForRole(QDialogButtonBox::StandardButton button) {
67 case QMessageBox::Cancel:
68 case QMessageBox::Close:
71 case QMessageBox::Yes:
72 case QMessageBox::YesToAll:
76 case QMessageBox::NoToAll:
79 case QMessageBox::Help:
87 QIcon CustomMessageBox::iconForStatus(QMessageBox::Icon status) {
89 case QMessageBox::Information:
92 case QMessageBox::Warning:
95 case QMessageBox::Critical:
98 case QMessageBox::Question:
101 case QMessageBox::NoIcon:
108 QMessageBox::Icon icon,
109 const QString &title,
111 const QString &informative_text,
112 const QString &detailed_text,
113 QMessageBox::StandardButtons buttons,
114 QMessageBox::StandardButton default_button) {
119 msg_box.setWindowTitle(title);
120 msg_box.setText(text);
121 msg_box.setInformativeText(informative_text);
122 msg_box.setDetailedText(detailed_text);
124 msg_box.setStandardButtons(buttons);
125 msg_box.setDefaultButton(default_button);
128 #if defined(Q_OS_OS2)
129 QDialogButtonBox *button_box = msg_box.findChild<QDialogButtonBox*>();
134 if (msg_box.exec() == -1) {
135 return QMessageBox::Cancel;
138 return msg_box.standardButton(msg_box.clickedButton());
static void iconify(QDialogButtonBox *button_box)
Performs icon replacements for given button box.
static QMessageBox::StandardButton show(QWidget *parent, QMessageBox::Icon icon, const QString &title, const QString &text, const QString &informative_text=QString(), const QString &detailed_text=QString(), QMessageBox::StandardButtons buttons=QMessageBox::Ok, QMessageBox::StandardButton default_button=QMessageBox::Ok)
Displays custom message box.
void setIcon(Icon icon)
Custom icon setting.
QIcon fromTheme(const QString &name)
Returns icon from active theme.
CustomMessageBox(QWidget *parent=0)
Constructor.
static IconFactory * instance()
Singleton getter.