Thanks for the feedback. This is a bug, and we'll try to fix it for  
Qt-4.5.

-Richard




On Jan 20, 2009, at 7:35 PM, Martin Dyde wrote:

> Hello Trenton & co.,
>
> We have various modal dialogs that show the progress of slow  
> operations
> (via QProgressBar or other means) and call  
> QApplication::processEvents()
> periodically (as recommended in the Qt docs), which all work fine on  
> Qt
> 4.4 and on Carbon.
>
> However on Qt 4.5/Cocoa (all builds and snapshots so far, including
> qt-all-commercial-src-4.5.0-snapshot-20090113) calling
> QApplication::processEvents() causes an indefinite freeze if a  
> dialog is
> open (e.g. a QProgressDialog) if the dialog was opened and made modal
> using QDialog::setModal(true). (Instead using
> QDialog::setWindowModality(Qt::ApplicationModal) doesn't suffer from  
> the
> problem but then the user can get around the modality because the main
> application menu bar items are still accessible - is that also a bug?)
>
> To reproduce the issue, edit
> $QTDIR/examples/dialogs/findfiles/window.cpp, find the function
> Window::findFiles() and add the following line:
>
> QStringList Window::findFiles(const QDir &directory, const QStringList
> &files,
>                             const QString &text)
> {
>   QProgressDialog progressDialog(this);
>   progressDialog.setCancelButtonText(tr("&Cancel"));
>   progressDialog.setRange(0, files.size());
>   progressDialog.setWindowTitle(tr("Find Files"));
>
>   progressDialog.setModal(true); // ADD THIS LINE
>
> ...
>
> Compile and use the example app to search a directory containing large
> binaries for an arbitrary substring (or any other operation that takes
> more than 4 seconds and would thus cause the QProgressDialog to  
> appear)
> and the app should freeze indefinitely.
>
> The same problem occurs if the window is instead made modal by
> setAttribute(Qt::WA_ShowModal, true)
>
> I built Qt using:
>
> ./configure -prefix $PWD -platform macx-g++ -arch x86_64
>
> ... but I don't think that's relevant since it seems always to  
> happen on
> Qt 4.5/Cocoa, regardless of the way it was built.
>
> Hence I think there are perhaps two bugs:
>
> 1. QApplication::processEvents() causes freeze with modal windows
> (either setModal(true) or setAttribute(Qt::WA_ShowModal, true) ).
>
> 2. QDialog::setWindowModality(Qt::ApplicationModal) is leaving the app
> menu items accessible, i.e. isn't isn't making the dialog fully modal
> (but it does give full modality on Windows platforms - haven't checked
> that one on Qt 4.5/Carbon yet).
>
>
> Many thanks and best regards,
>
> Martin Dyde,
> Milan Digital Audio LLC.
> http://www.crumhorn-labs.com/
> http://www.milandigitalaudio.com/
>
>
> _______________________________________________
> Qt4-preview-feedback mailing list
> [email protected]
> http://lists.trolltech.com/mailman/listinfo/qt4-preview-feedback

_______________________________________________
Qt4-preview-feedback mailing list
[email protected]
http://lists.trolltech.com/mailman/listinfo/qt4-preview-feedback

Reply via email to