QDialog - Change exec() and open() to virtual functions
authorThorbjørn Lund Martsum <tmartsum@gmail.com>
Wed, 7 Mar 2012 15:02:47 +0000 (16:02 +0100)
committerQt by Nokia <qt-info@nokia.com>
Thu, 8 Mar 2012 20:19:26 +0000 (21:19 +0100)
QDialog is meant for inheritance (it contains other virtual
functions) ...

The main reason for this is that we inside the dialog
could have a (datadepened) precondition that should
prevent the dialog from being shown at all - instead we
might just want to show a messagebox.

That is not easy solvable in Qt right now. It is possible
to reimplement setVisible - but calling reject from
setVisible does not work. There seems only to be clumsy
solutions to that problem - unless these functions are
made virtual

Beside it also creates a nice symmetry to done.

Change-Id: I51c29e1f7a4a5522f5c0f71bcf98c943580790b9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
src/widgets/dialogs/qdialog.h

index 7d3052a..f20ff46 100644 (file)
@@ -91,8 +91,8 @@ Q_SIGNALS:
     void rejected();
 
 public Q_SLOTS:
-    void open();
-    int exec();
+    virtual void open();
+    virtual int exec();
     virtual void done(int);
     virtual void accept();
     virtual void reject();