mirror of
https://bitbucket.org/smil3y/kde-workspace.git
synced 2025-02-23 18:32:50 +00:00
libs: drop unused and redundant bits
if the reboot/poweroff is not interactive it may silently fail Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
parent
cb4b132a2f
commit
27b83e2023
9 changed files with 34 additions and 141 deletions
|
@ -32,7 +32,7 @@ class KSMServerInterface : public QObject
|
|||
Q_CLASSINFO("D-Bus Interface", "org.kde.KSMServerInterface")
|
||||
|
||||
public Q_SLOTS:
|
||||
Q_SCRIPTABLE void logout(int, int, int );
|
||||
Q_SCRIPTABLE void logout(int, int );
|
||||
Q_SCRIPTABLE QStringList sessionList();
|
||||
|
||||
Q_SCRIPTABLE QString currentSession();
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
<method name="logout">
|
||||
<arg type="i" direction="in"/>
|
||||
<arg type="i" direction="in"/>
|
||||
<arg type="i" direction="in"/>
|
||||
</method>
|
||||
<method name="canShutdown">
|
||||
<arg type="b" direction="out"/>
|
||||
|
|
|
@ -193,8 +193,7 @@ void KSMSaveYourselfRequestProc (
|
|||
the_server->shutdown( fast ?
|
||||
KWorkSpace::ShutdownConfirmNo :
|
||||
KWorkSpace::ShutdownConfirmDefault,
|
||||
KWorkSpace::ShutdownTypeDefault,
|
||||
KWorkSpace::ShutdownModeDefault );
|
||||
KWorkSpace::ShutdownTypeDefault );
|
||||
} else if ( !global ) {
|
||||
SmsSaveYourself( smsConn, saveType, false, interactStyle, fast );
|
||||
SmsSaveComplete( smsConn );
|
||||
|
@ -716,7 +715,7 @@ void KSMServer::cleanUp()
|
|||
|
||||
FreeAuthenticationData(numTransports, authDataEntries);
|
||||
|
||||
KDisplayManager().shutdown( shutdownType, shutdownMode );
|
||||
KDisplayManager().shutdown( shutdownType );
|
||||
}
|
||||
|
||||
|
||||
|
@ -1026,22 +1025,22 @@ void KSMServer::setupShortcuts()
|
|||
|
||||
void KSMServer::defaultLogout()
|
||||
{
|
||||
shutdown(KWorkSpace::ShutdownConfirmYes, KWorkSpace::ShutdownTypeDefault, KWorkSpace::ShutdownModeDefault);
|
||||
shutdown(KWorkSpace::ShutdownConfirmYes, KWorkSpace::ShutdownTypeDefault);
|
||||
}
|
||||
|
||||
void KSMServer::logoutWithoutConfirmation()
|
||||
{
|
||||
shutdown(KWorkSpace::ShutdownConfirmNo, KWorkSpace::ShutdownTypeNone, KWorkSpace::ShutdownModeDefault);
|
||||
shutdown(KWorkSpace::ShutdownConfirmNo, KWorkSpace::ShutdownTypeNone);
|
||||
}
|
||||
|
||||
void KSMServer::haltWithoutConfirmation()
|
||||
{
|
||||
shutdown(KWorkSpace::ShutdownConfirmNo, KWorkSpace::ShutdownTypeHalt, KWorkSpace::ShutdownModeDefault);
|
||||
shutdown(KWorkSpace::ShutdownConfirmNo, KWorkSpace::ShutdownTypeHalt);
|
||||
}
|
||||
|
||||
void KSMServer::rebootWithoutConfirmation()
|
||||
{
|
||||
shutdown(KWorkSpace::ShutdownConfirmNo, KWorkSpace::ShutdownTypeReboot, KWorkSpace::ShutdownModeDefault);
|
||||
shutdown(KWorkSpace::ShutdownConfirmNo, KWorkSpace::ShutdownTypeReboot);
|
||||
}
|
||||
|
||||
#include "moc_server.cpp"
|
||||
|
|
|
@ -90,8 +90,7 @@ public:
|
|||
void restoreSession( const QString &sessionName );
|
||||
void startDefaultSession();
|
||||
void shutdown( KWorkSpace::ShutdownConfirm confirm,
|
||||
KWorkSpace::ShutdownType sdtype,
|
||||
KWorkSpace::ShutdownMode sdmode );
|
||||
KWorkSpace::ShutdownType sdtype );
|
||||
|
||||
virtual void suspendStartup( const QString &app );
|
||||
virtual void resumeStartup( const QString &app );
|
||||
|
@ -171,7 +170,7 @@ private:
|
|||
// public dcop interface
|
||||
|
||||
public Q_SLOTS: //public dcop interface
|
||||
void logout( int, int, int );
|
||||
void logout( int, int );
|
||||
bool canShutdown();
|
||||
QString currentSession();
|
||||
void saveCurrentSession();
|
||||
|
@ -205,7 +204,6 @@ private:
|
|||
QMap< QString, int > startupSuspendCount;
|
||||
|
||||
KWorkSpace::ShutdownType shutdownType;
|
||||
KWorkSpace::ShutdownMode shutdownMode;
|
||||
|
||||
bool clean;
|
||||
KSMClient* clientInteracting;
|
||||
|
@ -224,7 +222,6 @@ private:
|
|||
QWidget* logoutEffectWidget;
|
||||
KWorkSpace::ShutdownConfirm pendingShutdown_confirm;
|
||||
KWorkSpace::ShutdownType pendingShutdown_sdtype;
|
||||
KWorkSpace::ShutdownMode pendingShutdown_sdmode;
|
||||
|
||||
// sequential startup
|
||||
int appsToStart;
|
||||
|
|
|
@ -73,15 +73,10 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
#include <X11/Xutil.h>
|
||||
#include <X11/Xatom.h>
|
||||
|
||||
void KSMServer::logout( int confirm, int sdtype, int sdmode )
|
||||
void KSMServer::logout( int confirm, int sdtype )
|
||||
{
|
||||
// KDE5: remove me
|
||||
if (sdtype == KWorkSpace::ShutdownTypeLogout)
|
||||
sdtype = KWorkSpace::ShutdownTypeNone;
|
||||
|
||||
shutdown( (KWorkSpace::ShutdownConfirm)confirm,
|
||||
(KWorkSpace::ShutdownType)sdtype,
|
||||
(KWorkSpace::ShutdownMode)sdmode );
|
||||
(KWorkSpace::ShutdownType)sdtype);
|
||||
}
|
||||
|
||||
bool KSMServer::canShutdown()
|
||||
|
@ -94,7 +89,7 @@ bool KSMServer::canShutdown()
|
|||
}
|
||||
|
||||
void KSMServer::shutdown( KWorkSpace::ShutdownConfirm confirm,
|
||||
KWorkSpace::ShutdownType sdtype, KWorkSpace::ShutdownMode sdmode )
|
||||
KWorkSpace::ShutdownType sdtype )
|
||||
{
|
||||
pendingShutdown.stop();
|
||||
if( dialogActive )
|
||||
|
@ -109,7 +104,6 @@ void KSMServer::shutdown( KWorkSpace::ShutdownConfirm confirm,
|
|||
pendingShutdown.start( 1000 );
|
||||
pendingShutdown_confirm = confirm;
|
||||
pendingShutdown_sdtype = sdtype;
|
||||
pendingShutdown_sdmode = sdmode;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
@ -138,8 +132,6 @@ void KSMServer::shutdown( KWorkSpace::ShutdownConfirm confirm,
|
|||
cg.readEntry( "shutdownType", (int)KWorkSpace::ShutdownTypeNone );
|
||||
choose = true;
|
||||
}
|
||||
if (sdmode == KWorkSpace::ShutdownModeDefault)
|
||||
sdmode = KWorkSpace::ShutdownModeInteractive;
|
||||
|
||||
dialogActive = true;
|
||||
if ( !logoutConfirmed ) {
|
||||
|
@ -159,7 +151,6 @@ void KSMServer::shutdown( KWorkSpace::ShutdownConfirm confirm,
|
|||
inhibitCookie = Solid::PowerManagement::beginSuppressingSleep();
|
||||
|
||||
shutdownType = sdtype;
|
||||
shutdownMode = sdmode;
|
||||
|
||||
// shall we save the session on logout?
|
||||
saveSession = ( cg.readEntry( "loginMode", "restorePreviousLogout" ) == "restorePreviousLogout" );
|
||||
|
@ -214,7 +205,7 @@ void KSMServer::shutdown( KWorkSpace::ShutdownConfirm confirm,
|
|||
|
||||
void KSMServer::pendingShutdownTimeout()
|
||||
{
|
||||
shutdown( pendingShutdown_confirm, pendingShutdown_sdtype, pendingShutdown_sdmode );
|
||||
shutdown( pendingShutdown_confirm, pendingShutdown_sdtype );
|
||||
}
|
||||
|
||||
void KSMServer::saveCurrentSession()
|
||||
|
|
|
@ -106,31 +106,26 @@ bool KDisplayManager::canShutdown()
|
|||
return false;
|
||||
}
|
||||
|
||||
void KDisplayManager::shutdown(KWorkSpace::ShutdownType shutdownType,
|
||||
KWorkSpace::ShutdownMode shutdownMode)
|
||||
void KDisplayManager::shutdown(KWorkSpace::ShutdownType shutdownType)
|
||||
{
|
||||
if (shutdownType == KWorkSpace::ShutdownTypeNone || shutdownType == KWorkSpace::ShutdownTypeLogout) {
|
||||
if (shutdownType == KWorkSpace::ShutdownTypeNone) {
|
||||
return;
|
||||
}
|
||||
const bool interactive = (
|
||||
shutdownMode == KWorkSpace::ShutdownModeInteractive
|
||||
|| shutdownMode == KWorkSpace::ShutdownModeForceNow
|
||||
);
|
||||
|
||||
if (d->m_login1.isValid()) {
|
||||
if (shutdownType == KWorkSpace::ShutdownTypeReboot) {
|
||||
d->m_login1.call("Reboot", interactive);
|
||||
d->m_login1.call("Reboot", true);
|
||||
} else if (shutdownType == KWorkSpace::ShutdownTypeHalt) {
|
||||
d->m_login1.call("PowerOff", interactive);
|
||||
d->m_login1.call("PowerOff", true);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (d->m_consolekit.isValid()) {
|
||||
if (shutdownType == KWorkSpace::ShutdownTypeReboot) {
|
||||
d->m_consolekit.call("Reboot", interactive);
|
||||
d->m_consolekit.call("Reboot", true);
|
||||
} else if (shutdownType == KWorkSpace::ShutdownTypeHalt) {
|
||||
d->m_consolekit.call("PowerOff", interactive);
|
||||
d->m_consolekit.call("PowerOff", true);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -46,8 +46,7 @@ public:
|
|||
~KDisplayManager();
|
||||
|
||||
bool canShutdown();
|
||||
void shutdown(KWorkSpace::ShutdownType shutdownType,
|
||||
KWorkSpace::ShutdownMode shutdownMode);
|
||||
void shutdown(KWorkSpace::ShutdownType shutdownType);
|
||||
|
||||
bool isSwitchable();
|
||||
void newSession();
|
||||
|
|
|
@ -164,16 +164,15 @@ static void cleanup_sm()
|
|||
}
|
||||
#endif
|
||||
|
||||
void requestShutDown(ShutdownConfirm confirm, ShutdownType sdtype, ShutdownMode sdmode)
|
||||
void requestShutDown(ShutdownConfirm confirm, ShutdownType sdtype)
|
||||
{
|
||||
#ifdef Q_WS_X11
|
||||
/* use ksmserver's dcop interface if necessary */
|
||||
if ( confirm == ShutdownConfirmYes ||
|
||||
sdtype != ShutdownTypeDefault ||
|
||||
sdmode != ShutdownModeDefault )
|
||||
sdtype != ShutdownTypeDefault )
|
||||
{
|
||||
org::kde::KSMServerInterface ksmserver("org.kde.ksmserver", "/KSMServer", QDBusConnection::sessionBus());
|
||||
ksmserver.logout((int)confirm, (int)sdtype, (int)sdmode);
|
||||
ksmserver.logout((int)confirm, (int)sdtype);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -186,14 +185,11 @@ void requestShutDown(ShutdownConfirm confirm, ShutdownType sdtype, ShutdownMode
|
|||
#endif
|
||||
}
|
||||
|
||||
bool canShutDown( ShutdownConfirm confirm,
|
||||
ShutdownType sdtype,
|
||||
ShutdownMode sdmode )
|
||||
bool canShutDown( ShutdownConfirm confirm, ShutdownType sdtype )
|
||||
{
|
||||
#ifdef Q_WS_X11
|
||||
if ( confirm == ShutdownConfirmYes ||
|
||||
sdtype != ShutdownTypeDefault ||
|
||||
sdmode != ShutdownModeDefault )
|
||||
sdtype != ShutdownTypeDefault )
|
||||
{
|
||||
org::kde::KSMServerInterface ksmserver("org.kde.ksmserver", "/KSMServer", QDBusConnection::sessionBus());
|
||||
QDBusReply<bool> reply = ksmserver.canShutdown();
|
||||
|
@ -209,42 +205,6 @@ bool canShutDown( ShutdownConfirm confirm,
|
|||
#endif
|
||||
}
|
||||
|
||||
static QTime smModificationTime;
|
||||
void propagateSessionManager()
|
||||
{
|
||||
#ifdef Q_WS_X11
|
||||
QByteArray fName = QFile::encodeName(KStandardDirs::locateLocal("tmp", "KSMserver"));
|
||||
QString display = QString::fromLocal8Bit( ::getenv(DISPLAY) );
|
||||
// strip the screen number from the display
|
||||
display.remove(QRegExp("\\.[0-9]+$"));
|
||||
int i;
|
||||
while( (i = display.indexOf(':')) >= 0)
|
||||
display[i] = '_';
|
||||
while( (i = display.indexOf('/')) >= 0)
|
||||
display[i] = '_';
|
||||
|
||||
fName += '_';
|
||||
fName += display.toLocal8Bit();
|
||||
QByteArray smEnv = ::getenv("SESSION_MANAGER");
|
||||
bool check = smEnv.isEmpty();
|
||||
if ( !check && smModificationTime.isValid() ) {
|
||||
QFileInfo info( fName );
|
||||
QTime current = info.lastModified().time();
|
||||
check = current > smModificationTime;
|
||||
}
|
||||
if ( check ) {
|
||||
QFile f( fName );
|
||||
if ( !f.open( QIODevice::ReadOnly ) )
|
||||
return;
|
||||
QFileInfo info ( f );
|
||||
smModificationTime = QTime( info.lastModified().time() );
|
||||
const QByteArray b = f.readLine().trimmed();
|
||||
f.close();
|
||||
::setenv( "SESSION_MANAGER", b.constData(), true );
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
} // end namespace
|
||||
|
||||
#include "moc_kworkspace_p.cpp"
|
||||
|
|
|
@ -62,53 +62,23 @@ namespace KWorkSpace
|
|||
/**
|
||||
* Log out and halt the machine.
|
||||
*/
|
||||
ShutdownTypeHalt = 2,
|
||||
/**
|
||||
* Temporary brain damage. Don't use. Same as ShutdownTypeNone
|
||||
*/
|
||||
// KDE5: kill this
|
||||
ShutdownTypeLogout = 3
|
||||
};
|
||||
|
||||
/**
|
||||
* The possible values for the @p sdmode parameter of requestShutDown().
|
||||
*/
|
||||
// KDE5: this seems fairly useless
|
||||
enum ShutdownMode {
|
||||
/**
|
||||
* Select previous mode or the default if it's the first time.
|
||||
*/
|
||||
ShutdownModeDefault = -1,
|
||||
/**
|
||||
* Shut down, if no sessions are active. Otherwise do nothing.
|
||||
*/
|
||||
ShutdownModeTryNow = 1,
|
||||
/**
|
||||
* Force shutdown. Kill any possibly active sessions.
|
||||
*/
|
||||
ShutdownModeForceNow = 2,
|
||||
/**
|
||||
* Pop up a dialog asking the user what to do if sessions are still active.
|
||||
*/
|
||||
ShutdownModeInteractive = 3
|
||||
ShutdownTypeHalt = 2
|
||||
};
|
||||
|
||||
/**
|
||||
* Asks the session manager to shut the session down.
|
||||
*
|
||||
* Using @p confirm == ShutdownConfirmYes or @p sdtype != ShutdownTypeDefault or
|
||||
* @p sdmode != ShutdownModeDefault causes the use of ksmserver's DCOP
|
||||
* interface. The remaining two combinations use the standard XSMP and
|
||||
* will work with any session manager compliant with it.
|
||||
* Using @p confirm == ShutdownConfirmYes or @p sdtype != ShutdownTypeDefault
|
||||
* causes the use of ksmserver's D-Bus interface. The remaining two
|
||||
* combinations use the standard XSMP and will work with any session manager
|
||||
* compliant with it.
|
||||
*
|
||||
* @param confirm Whether to ask the user if he really wants to log out.
|
||||
* ShutdownConfirm
|
||||
* @param sdtype The action to take after logging out. ShutdownType
|
||||
* @param sdmode If/When the action should be taken. ShutdownMode
|
||||
*/
|
||||
KWORKSPACE_EXPORT void requestShutDown( ShutdownConfirm confirm = ShutdownConfirmDefault,
|
||||
ShutdownType sdtype = ShutdownTypeDefault,
|
||||
ShutdownMode sdmode = ShutdownModeDefault );
|
||||
KWORKSPACE_EXPORT void requestShutDown(ShutdownConfirm confirm = ShutdownConfirmDefault,
|
||||
ShutdownType sdtype = ShutdownTypeDefault);
|
||||
|
||||
/**
|
||||
* Used to check whether a requestShutDown call with the same arguments
|
||||
|
@ -121,25 +91,8 @@ namespace KWorkSpace
|
|||
* configuration may prevent the user from requesting a shutdown or
|
||||
* reboot.
|
||||
*/
|
||||
KWORKSPACE_EXPORT bool canShutDown( ShutdownConfirm confirm = ShutdownConfirmDefault,
|
||||
ShutdownType sdtype = ShutdownTypeDefault,
|
||||
ShutdownMode sdmode = ShutdownModeDefault );
|
||||
|
||||
/**
|
||||
* Propagates the network address of the session manager in the
|
||||
* SESSION_MANAGER environment variable so that child processes can
|
||||
* pick it up.
|
||||
*
|
||||
* If SESSION_MANAGER isn't defined yet, the address is searched in
|
||||
* $HOME/.KSMserver.
|
||||
*
|
||||
* This function is called by clients that are started outside the
|
||||
* session ( i.e. before ksmserver is started), but want to launch
|
||||
* other processes that should participate in the session. Examples
|
||||
* are kdesktop or kicker.
|
||||
*/
|
||||
KWORKSPACE_EXPORT void propagateSessionManager();
|
||||
|
||||
KWORKSPACE_EXPORT bool canShutDown(ShutdownConfirm confirm = ShutdownConfirmDefault,
|
||||
ShutdownType sdtype = ShutdownTypeDefault);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Reference in a new issue