Source Code (Use browser search to find items of interest.)
Class Index
qt'QSessionManager (./qt-2.1.0/src/kernel/qsessionmanager.h:39)
class Q_EXPORT QSessionManager : public QObject
{
Q_OBJECT
QSessionManager( QApplication *app, QString &session );
~QSessionManager();
public:
QString sessionId() const;
#if defined(_WS_X11_)
void* handle() const;
#endif
bool allowsInteraction();
bool allowsErrorInteraction();
void release();
void cancel();
enum RestartHint {
RestartIfRunning,
RestartAnyway,
RestartImmediately,
RestartNever
};
void setRestartHint( RestartHint );
RestartHint restartHint() const;
void setRestartCommand( const QStringList& );
QStringList restartCommand() const;
void setDiscardCommand( const QStringList& );
QStringList discardCommand() const;
void setProperty( const QString& name, const QString& value );
void setProperty( const QString& name, const QStringList& value );
bool isPhase2() const;
void requestPhase2();
private:
friend class QApplication;
friend class QBaseApplication;
QSessionManagerData* d;
};
qt'QSessionManager::QSessionManager() (./qt-2.1.0/src/kernel/qapplication_x11.cpp:4255)
QSessionManager::QSessionManager( QApplication * app, QString &session )
: QObject( app, "session manager" )
{
d = new QSessionManagerData;
d->sessionId = session;
d->restartHint = RestartIfRunning;
}
qt'QSessionManager::~QSessionManager() (./qt-2.1.0/src/kernel/qapplication_x11.cpp:4263)
QSessionManager::~QSessionManager()
{
delete d;
}
qt'QSessionManager::sessionId() (./qt-2.1.0/src/kernel/qapplication_x11.cpp:4268)
QString QSessionManager::sessionId() const
{
return d->sessionId;
}
qt'QSessionManager::handle() (./qt-2.1.0/src/kernel/qapplication_x11.cpp:4273)
void* QSessionManager::handle() const
{
return 0;
}
qt'QSessionManager::allowsInteraction() (./qt-2.1.0/src/kernel/qapplication_x11.cpp:4278)
bool QSessionManager::allowsInteraction()
{
return TRUE;
}
qt'QSessionManager::allowsErrorInteraction() (./qt-2.1.0/src/kernel/qapplication_x11.cpp:4283)
bool QSessionManager::allowsErrorInteraction()
{
return TRUE;
}
qt'QSessionManager::release() (./qt-2.1.0/src/kernel/qapplication_x11.cpp:4288)
void QSessionManager::release()
{
}
qt'QSessionManager::cancel() (./qt-2.1.0/src/kernel/qapplication_x11.cpp:4292)
void QSessionManager::cancel()
{
}
qt'QSessionManager::setRestartHint() (./qt-2.1.0/src/kernel/qapplication_x11.cpp:4296)
void QSessionManager::setRestartHint( QSessionManager::RestartHint hint)
{
d->restartHint = hint;
}
QSessionManager::RestartHint QSessionManager::restartHint() const
{
return d->restartHint;
}
qt'QSessionManager::setRestartCommand() (./qt-2.1.0/src/kernel/qapplication_x11.cpp:4306)
void QSessionManager::setRestartCommand( const QStringList& command)
{
d->restartCommand = command;
}
qt'QSessionManager::restartCommand() (./qt-2.1.0/src/kernel/qapplication_x11.cpp:4311)
QStringList QSessionManager::restartCommand() const
{
return d->restartCommand;
}
qt'QSessionManager::setDiscardCommand() (./qt-2.1.0/src/kernel/qapplication_x11.cpp:4316)
void QSessionManager::setDiscardCommand( const QStringList& command)
{
d->discardCommand = command;
}
qt'QSessionManager::discardCommand() (./qt-2.1.0/src/kernel/qapplication_x11.cpp:4321)
QStringList QSessionManager::discardCommand() const
{
return d->discardCommand;
}
qt'QSessionManager::setProperty() (./qt-2.1.0/src/kernel/qapplication_x11.cpp:4326)
void QSessionManager::setProperty( const QString&, const QString&)
{
}
qt'QSessionManager::setProperty() (./qt-2.1.0/src/kernel/qapplication_x11.cpp:4330)
void QSessionManager::setProperty( const QString&, const QStringList& )
{
}
qt'QSessionManager::isPhase2() (./qt-2.1.0/src/kernel/qapplication_x11.cpp:4334)
bool QSessionManager::isPhase2() const
{
return FALSE;
}
qt'QSessionManager::requestPhase2() (./qt-2.1.0/src/kernel/qapplication_x11.cpp:4339)
void QSessionManager::requestPhase2()
{
}
#else // QT_SM_SUPPORT
qt'QSessionManager::QSessionManager() (./qt-2.1.0/src/kernel/qapplication_x11.cpp:4607)
QSessionManager::QSessionManager( QApplication * app, QString &session )
: QObject( app, "session manager" )
{
d = new QSessionManagerData;
d->sessionId = session;
d->restartHint = RestartIfRunning;
resetSmState();
char cerror[256];
char* myId = 0;
char* prevId = (char*)session.latin1(); // we know what we are doing
SmcCallbacks cb;
cb.save_yourself.callback = sm_saveYourselfCallback;
cb.save_yourself.client_data = (SmPointer) this;
cb.die.callback = sm_dieCallback;
cb.die.client_data = (SmPointer) this;
cb.save_complete.callback = sm_saveCompleteCallback;
cb.save_complete.client_data = (SmPointer) this;
cb.shutdown_cancelled.callback = sm_shutdownCancelledCallback;
cb.shutdown_cancelled.client_data = (SmPointer) this;
// avoid showing a warning message below
if (!::getenv("SESSION_MANAGER") )
return;
smcConnection = SmcOpenConnection( 0, 0, 1, 0,
SmcSaveYourselfProcMask |
SmcDieProcMask |
SmcSaveCompleteProcMask |
SmcShutdownCancelledProcMask,
&cb,
prevId,
&myId,
255,
cerror );
d->sessionId = QString::fromLatin1( myId );
::free( myId ); // it was allocated by C
session = d->sessionId;
QString error = cerror;
if (!smcConnection ) {
qWarning("Session management error: %s", error.latin1() );
}
else {
sm_receiver = new QSmSocketReceiver( IceConnectionNumber( SmcGetIceConnection( smcConnection ) ) );
}
}
qt'QSessionManager::~QSessionManager() (./qt-2.1.0/src/kernel/qapplication_x11.cpp:4657)
QSessionManager::~QSessionManager()
{
if ( smcConnection )
SmcCloseConnection( smcConnection, 0, 0 );
smcConnection = 0;
delete sm_receiver;
delete d;
}
qt'QSessionManager::sessionId() (./qt-2.1.0/src/kernel/qapplication_x11.cpp:4666)
QString QSessionManager::sessionId() const
{
return d->sessionId;
}
qt'QSessionManager::handle() (./qt-2.1.0/src/kernel/qapplication_x11.cpp:4671)
void* QSessionManager::handle() const
{
return (void*) smcConnection;
}
qt'QSessionManager::allowsInteraction() (./qt-2.1.0/src/kernel/qapplication_x11.cpp:4677)
bool QSessionManager::allowsInteraction()
{
if ( sm_interactionActive )
return TRUE;
if ( sm_waitingForInteraction )
return FALSE;
if ( sm_interactStyle == SmInteractStyleAny ) {
sm_waitingForInteraction = SmcInteractRequest( smcConnection, SmDialogNormal,
sm_interactCallback, (SmPointer*) this );
}
if ( sm_waitingForInteraction ) {
qApp->enter_loop();
sm_waitingForInteraction = FALSE;
if ( sm_smActive ) { // not cancelled
sm_interactionActive = TRUE;
sm_blockUserInput = FALSE;
return TRUE;
}
}
return FALSE;
}
qt'QSessionManager::allowsErrorInteraction() (./qt-2.1.0/src/kernel/qapplication_x11.cpp:4701)
bool QSessionManager::allowsErrorInteraction()
{
if ( sm_interactionActive )
return TRUE;
if ( sm_waitingForInteraction )
return FALSE;
if ( sm_interactStyle == SmInteractStyleAny || sm_interactStyle == SmInteractStyleErrors ) {
sm_waitingForInteraction = SmcInteractRequest( smcConnection, SmDialogError,
sm_interactCallback, (SmPointer*) this );
}
if ( sm_waitingForInteraction ) {
qApp->enter_loop();
sm_waitingForInteraction = FALSE;
if ( sm_smActive ) { // not cancelled
sm_interactionActive = TRUE;
sm_blockUserInput = FALSE;
return TRUE;
}
}
return FALSE;
}
qt'QSessionManager::release() (./qt-2.1.0/src/kernel/qapplication_x11.cpp:4725)
void QSessionManager::release()
{
if ( sm_interactionActive ) {
SmcInteractDone( smcConnection, FALSE );
sm_interactionActive = FALSE;
if ( sm_smActive && sm_isshutdown )
sm_blockUserInput = TRUE;
}
}
qt'QSessionManager::cancel() (./qt-2.1.0/src/kernel/qapplication_x11.cpp:4735)
void QSessionManager::cancel()
{
sm_cancel = TRUE;
}
qt'QSessionManager::setRestartHint() (./qt-2.1.0/src/kernel/qapplication_x11.cpp:4740)
void QSessionManager::setRestartHint( QSessionManager::RestartHint hint)
{
d->restartHint = hint;
}
QSessionManager::RestartHint QSessionManager::restartHint() const
{
return d->restartHint;
}
qt'QSessionManager::setRestartCommand() (./qt-2.1.0/src/kernel/qapplication_x11.cpp:4750)
void QSessionManager::setRestartCommand( const QStringList& command)
{
d->restartCommand = command;
}
qt'QSessionManager::restartCommand() (./qt-2.1.0/src/kernel/qapplication_x11.cpp:4755)
QStringList QSessionManager::restartCommand() const
{
return d->restartCommand;
}
qt'QSessionManager::setDiscardCommand() (./qt-2.1.0/src/kernel/qapplication_x11.cpp:4760)
void QSessionManager::setDiscardCommand( const QStringList& command)
{
d->discardCommand = command;
}
qt'QSessionManager::discardCommand() (./qt-2.1.0/src/kernel/qapplication_x11.cpp:4765)
QStringList QSessionManager::discardCommand() const
{
return d->discardCommand;
}
qt'QSessionManager::setProperty() (./qt-2.1.0/src/kernel/qapplication_x11.cpp:4770)
void QSessionManager::setProperty( const QString& name, const QString& value)
{
SmPropValue prop;
prop.length = value.length();
prop.value = (SmPointer) value.utf8().data();
sm_setProperty( name.latin1(), SmARRAY8, 1, &prop );
}
qt'QSessionManager::setProperty() (./qt-2.1.0/src/kernel/qapplication_x11.cpp:4778)
void QSessionManager::setProperty( const QString& name, const QStringList& value)
{
SmPropValue *prop = new SmPropValue[ value.count() ];
int count = 0;
for ( QStringList::ConstIterator it = value.begin(); it != value.end(); ++it ) {
prop[ count ].length = (*it).length();
prop[ count ].value = (char*)(*it).utf8().data();
++count;
}
sm_setProperty( name.latin1(), SmLISTofARRAY8, count, prop );
delete [] prop;
}
qt'QSessionManager::isPhase2() (./qt-2.1.0/src/kernel/qapplication_x11.cpp:4791)
bool QSessionManager::isPhase2() const
{
return sm_in_phase2;
}
qt'QSessionManager::requestPhase2() (./qt-2.1.0/src/kernel/qapplication_x11.cpp:4796)
void QSessionManager::requestPhase2()
{
sm_phase2 = TRUE;
}