Do not connect KStandardAction::quit() to QApplication::quit()
David Faure
faure at kde.org
Wed Jan 30 23:14:40 GMT 2008
On Wednesday 30 January 2008, David Faure wrote:
> On Thursday 06 December 2007, Aurélien Gâteau wrote:
> > Hello,
> >
> > I just got bitten by this one, so I thought I'd share it with you.
> >
> > If your application implements KMainWindow::queryClose() to warn the user
> > about unsaved changes for example, do not connect KStandardAction::quit()
> > to QApplication::quit() as it would bypass the queryClose(). Instead,
> > connect it to QApplication::closeAllWindows().
> >
> > I had a look at my incomplete checkout of KDE and only find one mistake:
> > kapptemplate. Attached patch fix it. Ok to commit?
>
> Yes please do.
Ah! I remember now. Doh, what was I thinking.
The styleguide (in KDE 3 at least; the current styleguide on usability.kde.org seems to have nothing about this) says:
"Closing the application by selecting Quit in the File-menu closes the document-window and the document within it. Closing the document-window by selecting the X on the window border is equivalent to selecting Quit in the File-menu.
"Implementation Note
" Please note that closing the application does not necessarily mean terminating the UNIX process - other application instances may be using the same UNIX process and they should remain unaffected!
http://developer.kde.org/documentation/standards/kde/style/menus/file.html
This means that connecting to closeAllWindows() is just as wrong as connecting to quit().
In most KDE applications, the quit standardaction should be connected to "this, SLOT(close())".
No, I am not opening the debate on this kde3 styleguide feature here; if you wish to debate this,
take it to the usability list :).
(But in fact http://usability.kde.org/hig/ is a bit confusing about the current status of things; I assume
that "the version that has been the KDE styleguide for two major versions is still online and largely up to date"
refers to the above developer.kde.org url, a direct link would have been quite helpful...)
--
David Faure, faure at kde.org, sponsored by Trolltech to work on KDE,
Konqueror (http://www.konqueror.org), and KOffice (http://www.koffice.org).
More information about the kde-core-devel
mailing list