-rw-r--r-- | library/qpedialog.cpp | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/library/qpedialog.cpp b/library/qpedialog.cpp index da461b7..87d61e3 100644 --- a/library/qpedialog.cpp +++ b/library/qpedialog.cpp @@ -17,19 +17,26 @@ ** not clear to you. ** **********************************************************************/ -#define protected public +#include "qpedialog.h" + #include <qdialog.h> -#undef protected -#include "qpedialog.h" -#include <qpe/qpeapplication.h> +#include "qpeapplication.h" + + +// Allow access to nornally protected accept and reject functions +class HackedPrivateQDialog : public QDialog{ +public: + void accept() { QDialog::accept();} + void reject() { QDialog::reject();} +}; /** - * \brief This is the only c'tor. - * + * \brief This is the only c'tor. + * * The parent of this Listener is the Dialog you pass. This means once * the dialog is deleted this listener will be deleted too. * This Listener listens on QPEApplication::appMessage signal and implements * accept() and reject(). @@ -40,9 +47,9 @@ if( QPEApplication::execDialog(dialog) == QDialog::Accept ){ // do some stuff } delete dialog; - + * \endcode * * @param di The dialog to handle */ @@ -65,10 +72,13 @@ QPEDialogListener::~QPEDialogListener() {} void QPEDialogListener::appMessage( const QCString &msg, const QByteArray & ) { if (!dialog) return; + + HackedPrivateQDialog *hackedDialog = static_cast<HackedPrivateQDialog*>(dialog); + if (msg == "accept()") { - dialog->accept(); + hackedDialog->accept(); } else if (msg == "reject()") { - dialog->reject(); + hackedDialog->reject(); } } |