Use KApplication::sessionSaving() to determine if Dolphin is closed by

the session manager - there's no need to reinvent the wheel ;-)

Thanks to Lubos Lunak for the hint.

svn path=/trunk/KDE/kdebase/apps/; revision=1013726
This commit is contained in:
Frank Reininghaus 2009-08-20 15:47:38 +00:00
parent 1d75c9dcae
commit 8e17757ae3
3 changed files with 2 additions and 30 deletions

View file

@ -28,7 +28,7 @@
#include <QtDBus/QDBusConnection>
DolphinApplication::DolphinApplication() :
m_lastId(0), m_closedBySessionManager(false)
m_lastId(0)
{
new ApplicationAdaptor(this);
QDBusConnection::sessionBus().registerObject("/dolphin/Application", this);
@ -100,17 +100,6 @@ int DolphinApplication::newInstance()
return 0;
}
bool DolphinApplication::closedBySessionManager() const
{
return m_closedBySessionManager;
}
void DolphinApplication::commitData(QSessionManager& sessionManager) {
m_closedBySessionManager = true;
KUniqueApplication::commitData(sessionManager);
m_closedBySessionManager = false;
}
int DolphinApplication::openWindow(const KUrl& url)
{
DolphinMainWindow* win = createMainWindow();

View file

@ -56,20 +56,6 @@ public:
/** @see KUniqueApplication::newInstance(). */
virtual int newInstance();
/**
* Find out if Dolphin is closed directly by the user or
* by the session manager because the session is closed
*/
bool closedBySessionManager() const;
/**
* This virtual function is called by the session manager when
* it closes Dolphin. It is reimplemented to make the information
* if Dolphin is closed by the session manager or not accessible in
* DolphinMainWindow (via the function closedBySessionManager()).
*/
virtual void commitData(QSessionManager& sessionManager);
public slots:
int openWindow(const KUrl& url);
int openSplitWindow(const KUrl& leftUrl,const KUrl& rightUrl);
@ -81,9 +67,6 @@ protected:
private:
QList<DolphinMainWindow*> m_mainWindows;
int m_lastId;
/** Is true if Dolphin is closed by the session manager **/
bool m_closedBySessionManager;
};
#endif

View file

@ -430,7 +430,7 @@ void DolphinMainWindow::closeEvent(QCloseEvent* event)
// by the session manager because the session is closed
bool closedByUser = true;
DolphinApplication *application = qobject_cast<DolphinApplication*>(qApp);
if (application && application->closedBySessionManager()) {
if (application && application->sessionSaving()) {
closedByUser = false;
}