[Patch] KDialog / KDialogBase
Olivier Goffart
ogoffart at kde.org
Mon Jan 2 13:33:19 GMT 2006
Le Lundi 2 Janvier 2006 14:05, David Faure a écrit :
> On Monday 02 January 2006 13:45, Olivier Goffart wrote:
> > > Probably want to move KDialogQueuePrivate into a kdialog_p.h file
> >
> > I even would like to remove that class.
>
> You mean KDialogQueue itself, right?
yes
> > It is used only for KMessageBox::queuedMessageBox
> > but it could use show() instead of exec() and the result will be the same
>
> Not really since the idea is to only show one queued message box at a time,
> to avoid flooding the user with 10 at the same time.
Ah, i was not thinking about this.
I see a workaround
static QPointer<KDialog> currentMessageBox;
if( currentMessageBox )
connect(currentMessageBox,SIGNAL(destroyed),newMessageBox,SLOT(show()));
else
newMessageBox->show();
currentMessageBox=newMessageBox;
> The other difference is that if you delete the parent widget between "now"
> and the next event loop, you don't see a message box that appears and
> disappears immediately. This could happen with HTML pages that use a
> redirection. Not sure if (with Qt4, especially) the message box would have
> time to appear, though.
>
> It's true that making the message boxes non-modal already solves half of
> the goal of queueing though, since the main goal was to avoid
> sub-event-loops.
I was thinking to a design like i did in KNotification
KMessageBox : public QObject {
signals:
void result(int button);
public:
KMessageBox* queuedMessageBox( ..... );
};
That would solve the problem i have actually with queued messagebox:
- questions are not possible
- dontshowagain is not possible
> I wonder why we didn't make them non-modal in qt3.
Probably KMessageBox has been designed to be used with exec() and it's
difficult to change, specially because there is lots of function in that
class.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20060102/e67794b1/attachment.sig>
More information about the kde-core-devel
mailing list