1 | /****************************************************************************
|
---|
2 | **
|
---|
3 | ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
|
---|
4 | ** Contact: Qt Software Information ([email protected])
|
---|
5 | **
|
---|
6 | ** This file is part of the documentation of the Qt Toolkit.
|
---|
7 | **
|
---|
8 | ** $QT_BEGIN_LICENSE:LGPL$
|
---|
9 | ** Commercial Usage
|
---|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in
|
---|
11 | ** accordance with the Qt Commercial License Agreement provided with the
|
---|
12 | ** Software or, alternatively, in accordance with the terms contained in
|
---|
13 | ** a written agreement between you and Nokia.
|
---|
14 | **
|
---|
15 | ** GNU Lesser General Public License Usage
|
---|
16 | ** Alternatively, this file may be used under the terms of the GNU Lesser
|
---|
17 | ** General Public License version 2.1 as published by the Free Software
|
---|
18 | ** Foundation and appearing in the file LICENSE.LGPL included in the
|
---|
19 | ** packaging of this file. Please review the following information to
|
---|
20 | ** ensure the GNU Lesser General Public License version 2.1 requirements
|
---|
21 | ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
---|
22 | **
|
---|
23 | ** In addition, as a special exception, Nokia gives you certain
|
---|
24 | ** additional rights. These rights are described in the Nokia Qt LGPL
|
---|
25 | ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
|
---|
26 | ** package.
|
---|
27 | **
|
---|
28 | ** GNU General Public License Usage
|
---|
29 | ** Alternatively, this file may be used under the terms of the GNU
|
---|
30 | ** General Public License version 3.0 as published by the Free Software
|
---|
31 | ** Foundation and appearing in the file LICENSE.GPL included in the
|
---|
32 | ** packaging of this file. Please review the following information to
|
---|
33 | ** ensure the GNU General Public License version 3.0 requirements will be
|
---|
34 | ** met: http://www.gnu.org/copyleft/gpl.html.
|
---|
35 | **
|
---|
36 | ** If you are unsure which license is appropriate for your use, please
|
---|
37 | ** contact the sales department at [email protected].
|
---|
38 | ** $QT_END_LICENSE$
|
---|
39 | **
|
---|
40 | ****************************************************************************/
|
---|
41 |
|
---|
42 | /*!
|
---|
43 | \page session.html
|
---|
44 | \title Session Management
|
---|
45 | \ingroup gui-programming
|
---|
46 |
|
---|
47 | A \e session is a group of running applications, each of which has a
|
---|
48 | particular state. The session is controlled by a service called the \e
|
---|
49 | session \e manager. The applications participating in the session are
|
---|
50 | called \e{session clients}.
|
---|
51 |
|
---|
52 | The session manager issues commands to its clients on behalf of the
|
---|
53 | user. These commands may cause clients to commit unsaved changes (for
|
---|
54 | example by saving open files), to preserve their state for future
|
---|
55 | sessions, or to terminate gracefully. The set of these operations is
|
---|
56 | called \e session \e management.
|
---|
57 |
|
---|
58 | In the common case, a session consists of all applications that a
|
---|
59 | user runs on their desktop at a time. Under Unix/X11, however, a
|
---|
60 | session may include applications running on different computers and
|
---|
61 | may span multiple displays.
|
---|
62 |
|
---|
63 | \section1 Shutting a Session Down
|
---|
64 |
|
---|
65 | A session is shut down by the session manager, usually on behalf of
|
---|
66 | the user when they want to log out. A system might also perform an
|
---|
67 | automatic shutdown in an emergency situation, for example, if power is
|
---|
68 | about to be lost. Clearly there is a significant difference between
|
---|
69 | these types of shutdown. During the first, the user may want to
|
---|
70 | interact with the application, specifying exactly which files should
|
---|
71 | be saved and which should be discarded. In the latter case, there's no
|
---|
72 | time for interaction. There may not even be a user sitting in front of
|
---|
73 | the machine!
|
---|
74 |
|
---|
75 |
|
---|
76 | \section1 Protocols and Support on Different Platforms
|
---|
77 |
|
---|
78 | On Mac OS X, and Microsoft Windows versions prior to Windows 2000,
|
---|
79 | there is nothing like complete session management for applications
|
---|
80 | yet, i.e. no restoring of previous sessions. (Windows 2000 and XP
|
---|
81 | provide "hibernation" where the entire memory is saved to disk and
|
---|
82 | restored when the machine is restarted.) They do support graceful
|
---|
83 | logouts where applications have the opportunity to cancel the process
|
---|
84 | after getting confirmation from the user. This is the functionality
|
---|
85 | that corresponds to the QApplication::commitData() method.
|
---|
86 |
|
---|
87 | X11 has supported complete session management since X11R6.
|
---|
88 |
|
---|
89 | \section1 Getting Session Management to Work with Qt
|
---|
|
---|