diff moreinformationdialog.h @ 290:c0c254f67346 more_information_dialog

Make our own message box with a more useful "more information" section than the Qt one
author Chris Cannam
date Mon, 21 Feb 2011 14:23:02 +0000
parents 1244dc3107cb
children
line wrap: on
line diff
--- a/moreinformationdialog.h	Mon Jan 31 17:23:10 2011 +0000
+++ b/moreinformationdialog.h	Mon Feb 21 14:23:02 2011 +0000
@@ -19,20 +19,45 @@
 #define MORE_INFORMATION_DIALOG_H
 
 #include <QString>
+#include <QDialog>
 
-class QWidget;
+class QLabel;
+class QTextEdit;
+class QPushButton;
 
 /**
  * Provide methods like the QMessageBox static methods, to call up
- * dialogs with "More information" buttons in them
+ * dialogs with "More information" buttons in them.  QMessageBox does
+ * have an optional additional-details field, but it doesn't behave
+ * quite as we'd like with regard to layout
  */
 
-class MoreInformationDialog
+class MoreInformationDialog : public QDialog
 {
+    Q_OBJECT
+
 public:
-    static void critical(QWidget *parent, QString title, QString text, QString more);
-    static void information(QWidget *parent, QString title, QString text, QString more);
-    static void warning(QWidget *parent, QString title, QString text, QString more);
+    MoreInformationDialog(QString title,
+                          QString head,
+                          QString text,
+                          QString more,
+                          QWidget *parent = 0);
+
+    ~MoreInformationDialog();
+
+    void setIcon(QIcon);
+
+    static void critical(QWidget *parent, QString title, QString head, QString text, QString more);
+    static void information(QWidget *parent, QString title, QString head, QString text, QString more);
+    static void warning(QWidget *parent, QString title, QString head, QString text, QString more);
+
+private slots:
+    void moreClicked();
+
+private:
+    QLabel *m_iconLabel;
+    QPushButton *m_moreButton;
+    QTextEdit *m_moreText;
 };
 
 #endif