In case it sheds any light on the problem for anyone here are my two source files (as simple as they get):

Class declaration
Qt Code:
  1. #include "ui_ppdl_dialogMissingFiles.h"
  2. #include <QString>
  3. #include <QDebug>
  4.  
  5. class PpdlDialogMissingFiles : public QDialog, public Ui::PpdlDialogMissingFiles {
  6. Q_OBJECT
  7.  
  8. public:
  9. PpdlDialogMissingFiles( QWidget *parent = 0, const QString &bodyhtml = "" );
  10. ~PpdlDialogMissingFiles( );
  11.  
  12. private:
  13. QString html; // build string for preparing QTextEdit html
  14.  
  15. };
To copy to clipboard, switch view to plain text mode 

Class implementation
Qt Code:
  1. #include "ppdl_dialogMissingFiles.h"
  2. #include <QTextStream>
  3.  
  4. // constructor
  5. PpdlDialogMissingFiles::PpdlDialogMissingFiles ( QWidget * parent, const QString &bodyhtml ):QDialog ( parent )
  6. {
  7. setupUi ( this );
  8.  
  9. // wrap the passed body text in HTML framework
  10. QTextStream ( &html ) << "<html><head></head><body>" << bodyhtml << "</body></html>";
  11.  
  12. // display the content provided to us
  13. textEdit->setHtml ( html );
  14. }
  15.  
  16. // destructor
  17. PpdlDialogMissingFiles::~PpdlDialogMissingFiles ( )
  18. {
  19. // nothing for now
  20. }
To copy to clipboard, switch view to plain text mode 

Invocation from app that encounters exec() block failure (returns immediately with '0')
Qt Code:
  1. // missingFilesAdvisory is a populated QString
  2. // also no change when parented to app QMainWindow instead of '0'
  3. PpdlDialogMissingFiles *dialogMissingFiles = new PpdlDialogMissingFiles ( 0, missingFilesAdvisory );
  4.  
  5. // returns Yes (Proceed) = 1, No (Do not proceed) = 0
  6. int proceed = dialogMissingFiles->exec ( );
To copy to clipboard, switch view to plain text mode 

Other custom dialogs of similar design working fine. This working fine in a test app. Fails in my main app. What am I not seeing?

Thanks to all,
Bill