Merge master into api_changes
[profile/ivi/qtbase.git] / dist / changes-2.2.0
1
2 Qt 2.2 introduces new features as well as many improvements over the
3 2.1.x series. This file will only give an overview of the main changes
4 since version 2.1.  A complete list would simply be too large to be
5 useful.  For more detail see the online documentation which is
6 included in this distribution, and also available on
7 http://qt.nokia.com/doc/
8
9 The Qt version 2.2 series is binary compatible with the 2.1.x and
10 2.0.x series - applications compiled for 2.0 or 2.1 will continue to
11 run with 2.2.
12
13 As with previous Qt releases, the API and functionality of Qt is
14 completely portable between Microsoft Windows and X11.  It is also
15 portable between Windows 95, 98, NT and 2000.
16
17 ****************************************************************************
18 *                           Overview                                       *
19 ****************************************************************************
20
21 The greatest new feature in the 2.2 release is the Qt Designer, a
22 visual GUI design tool. It makes it possible to cut down on
23 development time even further through WYSIWYG dialog design. The
24 designer makes use of improved runtime flexibility and a revised
25 property system. Please see $QTDIR/doc/html/designer.html for a
26 feature overview.
27
28 Qt 2.2 integrates now fully on MS-Windows 2000.  This includes fade
29 and scroll effects for popup windows and title bar gradients for MDI
30 document windows in the MDI module. As with all Qt features, we
31 provide the same visual effects on Unix/X11.
32
33 Two new classes QAction and QActionGroup make it much easier to
34 create sophisticated main windows for today's applications. A QAction
35 abstracts a user interface action that can appear both in menus and
36 tool bars.  An action group makes it easier to deal with groups of
37 actions. It allows to add, remove or activate its children with a
38 single call and provides "one of many" semantics for toggle
39 actions. Changing an action's properties, for example using
40 setEnabled(),setOn() or setText(), immediately shows up in all
41 representations.
42
43 Few people consider the original OSF Motif style the most elegant or
44 flashy GUI style. Therefore several attempts have been made to come up
45 with a slightly improved Motif-ish look and feel. One of them is the
46 thinner CDE style, that was supported by Qt since version 2.0.  In the
47 2.2 release, we now added support for SGI's very own Motif version on
48 IRIX workstations.  With its more elegant bevelling of 3D elements and
49 mouse-under highlight effects, it is quite appealing. For Linux users,
50 we added a Motif plus style, that resembles the bevelling used by the
51 GIMP toolkit (GTK+). Optionally, this style also does hovering
52 highlight on buttons.
53
54 Last but not least we added support for multi-threaded
55 applications. The classes involved are QThread to start threads,
56 QMutex to serialize them and QCondition to signal the occurrence of
57 events between threads ("condition variables").
58
59 Another major change was done regarding distribution. In order to
60 address the steady growth of functionality in the Qt library, we
61 split the source code into distinct modules that can be compiled
62 in (or left out) separately. This also makes it possible for us to
63 keep the cost of entry into the commercial Qt world as low as possible.
64
65 The modules available in Qt 2.2 are:
66
67 - Tools: platform-independent Non-GUI API for I/O, encodings, containers,
68     strings, time & date, and regular expressions.
69
70 - Kernel: platform-independent GUI API, a complete window-system API.
71
72 - Widgets: portable GUI controls.
73
74 - Dialogs: ready-made common dialogs for selection of colors, files,
75     printers, fonts, and basic types, plus a wizard framework, message
76     boxes and progress indicator.
77
78 - OpenGL 3D Graphics: integration of OpenGL with Qt, making it very
79     easy to use OpenGL rendering in a Qt application.
80
81 - Network: advanced socket and server-socket handling plus
82     asynchronous DNS lookup.
83
84 - Canvas: a highly optimized 2D graphic area.
85
86 - Table:  a flexible and editable table widget
87
88 - IconView: a powerful visualization widget similar to QListView and
89     QListBox. It contains optionally labelled pixmap items that the user
90     can select, drag around, rename, delete and more.
91
92 - XML: a well-formed XML parser with SAX interface plus an
93     implementation of the DOM Level1
94
95 - Workspace: a workspace window that can contain decorated document
96     windows for Multi Document Interfaces (MDI).
97
98
99 Network, Canvas, Table and XML are entirely new modules.
100
101 Below is a list of the major new features in existing classes as well
102 as short descriptions of all new classes.
103
104
105 ****************************************************************************
106 *               New major features in existing classes                     *
107 ****************************************************************************
108
109 QApplication:   - "global strut", an adjustable minimum size for interactable
110                   control elements like the entries in a listbox, useful for
111                   touch-screens. Popup window effects ( setEffectEnabled() )
112                   and more threading support ( guiThreadTaken(), lock(),
113                   unlock(), locked() ).
114
115 QCheckBox:      - "tristate" is now a property.
116
117 QClipboard:     - text() supports subtypes.
118
119 QComboBox:      - "editable" is now a property that is changeable at runtime
120
121 QDialog:        - support for extensible dialogs ("More...") with
122                   setExtension() and setOrientation(). Optional size grip.
123
124 QFont:          - new functions styleStrategy() and  setStyleHint()
125
126 QIconSet:       - new constructor that takes both a small and a large pixmap
127
128 QKeyEvent:      - numeric keypad keys now set a Keypad flag
129
130 QLabel:         - support for scaled pixmap contents, "pixmap" as property
131
132 QLayout:        - improved flexibility with setEnabled(), access to the
133                   laid out menu bar with menuBar().
134
135 QListView:      - "showSortIndicator" as property. New function
136                   QListViewItem::moveItem() to simplify drag and drop.
137
138 QMovie:         - new functions pushSpace(), pushData(), frameImage()
139
140 QMultiLineEdit: - new functions pasteSubType() and copyAvailable()
141
142 QObject:        - new function normalizeSignalSlot(), tr() now supports a comment.
143
144 QPicture:       - streaming to and from QDataStream
145
146 QPopupMenu:     - new signal aboutToHide()
147
148 QRegExp:        - new functions setPattern() and find()
149
150 QRegion:        - new function setRects()
151
152 QScrollView:    - new property "staticBackground" to define a pixmap
153                   background that does not scroll with the contents.
154
155 QStatusBar:     - "sizeGripEnabled" as property
156
157 QStyle:         - themable menu bars with drawMenuBarItem(). New functions
158                   buttonMargin(), toolBarHandleExtent(), sliderThickness()
159
160 QTabWidget:     - new functions currentPageIndex(), setCurrentPage(), new
161                   signal currentChanged(). Similar extensions to QTabBar
162                   and QTabDialog
163
164 QTranslator:    - new algorithmen for faster lookup. No more risk of
165                 "hash collisions" when many translators are loaded.
166
167 QVariant:       - new subtype QSizePolicy. Necessary for QWidget's
168                    new sizePolicy property.
169
170 QWidget:        - new properties "sizePolicy", "ownPalette", "ownFont",
171                   "ownCursor" and "hidden". The size policy is now adjustable
172                   at runtime with setSizePolicy().  Added convenience slot
173                   setDisabled(). Fast geometry mapping functions mapTo() and
174                   mapFrom(). On X11, support for a new background mode
175                   X11ParentRelative.
176
177 QWizard:        - runtime changable titles with setTitle(), new signal
178                   selected()
179
180 QWorkspace:     - support for more widget flags like WType_Tool. Titlebar
181                   blending effects on MS-Windows 98/2000.
182
183
184 ****************************************************************************
185 *                               New classes                                *
186 ****************************************************************************
187
188 QAction         - Abstracts a user interface action that can appear both in
189                   menus and tool bars. Changing an action's properties, for
190                   example using setEnabled(),setOn() or setText(),
191                   immediately shows up in all representations.
192
193 QActionGroup    - Combines actions to a group. An action group makes it easier
194                   to deal with groups of actions. It allows to add, remove or
195                   activate its children with a single call and provides
196                   "one of many" semantics for toggle actions.
197
198 QDial           - A rounded rangecontrol (like a speedometer or
199                   potentiometer). Both API- and UI-wise the dial is very
200                   similar to a QSlider.
201
202 QDom            - [XML Module] DOM Level 1 Tree
203
204 QMotifPlusStyle - This class implements a Motif-ish look and feel with more
205                   sophisticated bevelling as used by the GIMP toolkit (GTK+)
206                   for Unix/X11.
207
208 QMutex:         - Provides access serialization between threads.
209
210 QSemaphore:     - A robust integer semaphore.  Another way of thread
211                   serialization.
212
213 QThread         - Baseclass for platform-independent threads.
214
215 QWaitCondition  - Provides signalling of the occurrence of events between
216                   threads ("condition variables")
217
218 QCanvas         - [Canvas Module] a highly optimized 2D graphic area.
219
220 QTable          - [Table Module] a flexible and editable table widget
221
222 QXML            - [XML Module] XML parser with SAX interface
223