diff -ur kdebase-workspace-4.4.0/plasma/desktop/applets/kickoff/core/itemhandlers.cpp kdebase-workspace-4.4.0-classicmenu-logout/plasma/desktop/applets/kickoff/core/itemhandlers.cpp
--- kdebase-workspace-4.4.0/plasma/desktop/applets/kickoff/core/itemhandlers.cpp 2010-01-06 18:00:18.000000000 +0100
+++ kdebase-workspace-4.4.0-classicmenu-logout/plasma/desktop/applets/kickoff/core/itemhandlers.cpp 2010-02-13 12:47:31.000000000 +0100
@@ -110,7 +110,8 @@
QTimer::singleShot(0, this, SLOT(switchUser()));
return true;
} else if (m_logoutAction == "logout" || m_logoutAction == "logoutonly" ||
- m_logoutAction == "restart" || m_logoutAction == "shutdown") {
+ m_logoutAction == "restart" || m_logoutAction == "shutdown" ||
+ m_logoutAction == "leave") {
// decouple dbus call, otherwise we'll run into a dead-lock
QTimer::singleShot(0, this, SLOT(logout()));
return true;
@@ -163,6 +164,10 @@
type = KWorkSpace::ShutdownTypeReboot;
} else if (m_logoutAction == "shutdown") {
type = KWorkSpace::ShutdownTypeHalt;
+ } else if (m_logoutAction == "leave") {
+ // This one brings up the dialog, for use in the classic menu.
+ confirm = KWorkSpace::ShutdownConfirmYes;
+ type = KWorkSpace::ShutdownTypeDefault;
}
//FIXME: the proper fix is to implement the KWorkSpace methods for Windows
diff -ur kdebase-workspace-4.4.0/plasma/desktop/applets/kickoff/simpleapplet/simpleapplet.cpp kdebase-workspace-4.4.0-classicmenu-logout/plasma/desktop/applets/kickoff/simpleapplet/simpleapplet.cpp
--- kdebase-workspace-4.4.0/plasma/desktop/applets/kickoff/simpleapplet/simpleapplet.cpp 2010-01-06 18:00:18.000000000 +0100
+++ kdebase-workspace-4.4.0-classicmenu-logout/plasma/desktop/applets/kickoff/simpleapplet/simpleapplet.cpp 2010-02-13 12:49:23.000000000 +0100
@@ -207,6 +207,7 @@
case Shutdown: return i18n("Shutdown");
case Logout: return i18n("Logout");
case Leave: return i18n("Leave");
+ case LeaveDialog: return i18n("Leave...");
}
return QString();
}
@@ -232,6 +233,7 @@
case Shutdown: return "system-shutdown";
case Logout: return "system-log-out";
case Leave: return "system-shutdown";
+ case LeaveDialog: return "system-shutdown";
}
return QString();
}
@@ -727,6 +729,8 @@
menuview->addAction(KIcon(d->viewIcon(LockScreen)), d->viewText(LockScreen))->setData(KUrl("leave:/lock"));
} else if(vtname == "Logout") {
menuview->addAction(KIcon(d->viewIcon(Logout)), d->viewText(Logout))->setData(KUrl("leave:/logout"));
+ } else if(vtname == "LeaveDialog") {
+ menuview->addAction(KIcon(d->viewIcon(LeaveDialog)), d->viewText(LeaveDialog))->setData(KUrl("leave:/leave"));
} else if(vtname == "Leave") {
Kickoff::LeaveModel *leavemodel = new Kickoff::LeaveModel(menuview);
leavemodel->updateModel();
diff -ur kdebase-workspace-4.4.0/plasma/desktop/applets/kickoff/simpleapplet/simpleapplet.h kdebase-workspace-4.4.0-classicmenu-logout/plasma/desktop/applets/kickoff/simpleapplet/simpleapplet.h
--- kdebase-workspace-4.4.0/plasma/desktop/applets/kickoff/simpleapplet/simpleapplet.h 2009-09-16 13:40:52.000000000 +0200
+++ kdebase-workspace-4.4.0-classicmenu-logout/plasma/desktop/applets/kickoff/simpleapplet/simpleapplet.h 2010-02-13 12:47:31.000000000 +0100
@@ -59,7 +59,8 @@
Restart, ///< Restart Action
Shutdown, ///< Shutdown Action
Logout, ///< Logout Action
- Leave ///< Leave Menu
+ Leave, ///< Leave Menu
+ LeaveDialog ///< Leave Dialog Action
};
/**