Sections

Changes 3.0.5

Product: Qt
Version: 3.0.5
Qt 3.0.5 is a bugfix release.

To avoid problems with loading plugins which link against different Qt
libraries, the semantics of plugin loading has been changed. For
detailed information look at the updated Plugin HOWTO
($QTDIR/doc/html/plugin-howto.html)

****************************************************************************
*                              General                                     *
****************************************************************************

BINARY COMPATIBILITY WARNING: Qt 3.0.5 is backward and forward binary
compatible with Qt 3.0.6, and is planned to be binary compatible with
Qt 3.1.  Unfortunately Qt 3.0.5 is not 100% backward binary compatible
with Qt 3.0.4 (a class got a few bytes smaller), meaning executables
compiled with 3.0.5 may not run properly when linked dynamically to
3.0.4. at runtime. Due to its wide distributed in various GNU/Linux
distributions, we have decided to stick with 3.0.5's ABI. If you ship
dynamically linked executables, we suggest putting a QT_REQUIRE_VERSION macro
at the beginning of your main function:
   ...
   #include <qmessagebox.h>
   ...
   int main( int argc, char **argv )
   {
     QT_REQUIRE_VERSION( argc, argv, "3.0.5" )
     ...
   }

The macro will show a message box with a warning message and then
abort the application gracefully with exit(1).

The version number format of QT_VERSION changed. It is now 0xmmiibb 
(m = major, i = minor, b = bugfix). Qt 3.0.5's QT_VERSION is 0x030005.

Qt 3.0.5 introduces changes in some aspects of plugins, in particular
their loading, path handling and library versions. As a result of this
change, NO plugins compiled with Qt 3.0.4 and earlier can be loaded by
Qt 3.0.5 and later. ALL plugins must be recompiled to be loaded by 3.0.5
and later.

All the larger template methods in QValueList, QMap, QPair and QTL,
which used to be inline, are no longer inline. This saves a significant
amount of code size. If you prefer to keep them inlined (as before),
define Q_INLINE_TEMPLATES in qglobal.h.

****************************************************************************
*                              Library                                     *
****************************************************************************

- QApplication:
	Reset the mouse grab when entering a modal loop. Support the
	setting of data without running the QApplication event loop.
	Windows only: Bugfix for input methods on Win98. Support mouse
	wheel on multihead setups with negative coordinates.

- QCanvasSprite:
	Fix out-of-bounds read in frame handling.

- QCheckTableItem:
	Fixed isChecked() so that it no longer calls updateCell() (which
	in turn calls QCheckTableItem::paintCell()). This means that
	isChecked() can now be used inside paintCell() without causing
	endless recursion.

- QDataBrowser:
	Clear the form values if a delete operation deletes the last
	record in the form.

- QDataTable:
	Don't let setColumnStrechable() crash if the table doesn't
	contain any columns.

- QDateTimeEdit:
	Spin the section the mouse is over when wheeling.

- QDir:
	Removed the warning resulting from attempts to call entryList()
	on a non-existent directory. The behaviour for this case is
	safely handled and well defined.

- QDns:
	Windows only: Better support of DNS lookup if the DNS servers
	are configured via DHCP (especially under Windows NT).

- QDockArea:
	Skip hidden dock windows when resizing them in the dock area.

- QDockWindow:
	Don't eat the Escape key unless the dockwindow is being moved by
	the mouse, in which case simply stop the moving of the
	dockwindow.

- QDom:
	The hasAttributes() function now only returns TRUE if the node
	really has attributes.

- QFileDialog:
	Fixed handling filenames which contain non latin1 characters.

- QFtp:
	Respect the line continuation of replies from the server. This
	makes QFtp work with a wider ranger of FTP servers.

- QHeader:
	Fixed the height of table headers with multi-line
	labels. Fixed adjustHeaderSize() to work with sections smaller
	that 20 pixels. When a label doesn't have a label explicitly
	set return the number associated with the label.

- QIconView:
	Fixed sizehint to return a proper size when the iconview has
	scrollbars.

- QInputDialog:
	Accept empty text as still being text.

- QIODevice:
	Unix only: readBlock() returns -1 if a fatal error occurs like
	it does on Windows and Mac (and as it is documented to).

- QLabel:
	Fixed sizeHint() so that it doesn't call the virtual
	minimumSizeHint() function.

- QLineEdit:
	Reset blink timer when receiving a keypress event to keep the
	cursor visible during navigation.
	Windows only: CTRL+A now calls selectAll(), not home().

- QListView:
	Fixed drawing the branches. Fixed updating the truncated text
	of cells. Removed gratuitous inefficiency when sorting is
	disabled. If the item is not selected, but is current, then
	don't rename when it is clicked to be selected. Calculate
	rectangle for focus indicator correctly if the first column is
	too small for the item.

- QMenuBar:
	Fixed accelerators. QMenuBar Make more Window-ish for
	WindowsStyle styles.

- QMutex:
	Release the mutex again when testing locked status with
	locked. Don't block in tryLock when called twice by the same
	thread.

- QODBCDriver:
	Add support for qualifying a tablename with catalog and schema
	names.

- QODBCResult:
	Implement fetchNext() properly. Speeds up access to flat
	files.

- QOCIDriver:
	Fix crash when trying to read empty BLOB fields. Speed up the
	QOCIDriver::primaryIndex() call.

- QOCIResult:
	Fixed support for RAW and LONG RAW fields. Make RAW fields
	return correct field sizes, not just the column size.

- QPainter:
	QPainter clipping to an empty region resulted in no clipping
	on Windows, while everything was clipped on X11. Adjusted
	Windows behavior to match X11.
	Windows only: Fixed drawLine() on Windows 95/98/Me to behave
	the same as on X11 and NT/2000 for pen widths >=1.

- QPicture:
	SVG support: Fixed default element stroke. Added support for
	reading and writing bold and cursive font styles. Corrected
	default brush and polyline brush

- QPopupMenu:
	Fixed inserting widgets with index smaller than 0. Fixed
	accelerators. Passing in an iconset and custom menu data now
	shows the icon in the menu item.
	X11 only: Fixed placement of popup menus on normal X11
	multiscreen.

- QPrinter:
	QPrinter setMinMax() also sets a reasonable default for
	fromPage and toPage if these weren't already set. QPrinter
	use the resolution the user sets with setResolution() in all
	cases.
	Windows only: make QPrinter work without having to call
	setup(). Fixed a problem where pixmaps where printed upside
	down on certain printer drivers. On some Windows printer
	drivers the page offsets where wrong on the second page when
	using setFullPage( TRUE ). Fixed some problems leading to
	memory corruption with some Windows printer drivers on Win95.
	Windows 95/98 only: fix setPrinterName() method.


- QPrintDialog:
	Windows only: Disabled the selection radiobutton, since we don't
	support this.

- QProcess:
	Windows only: normalExit() now returns FALSE when the process
	was terminated with a call to kill(). Fixed some rare blocking
	behaviour in the readStdin() and readStdout() functions.

- QPSPrinter:
	Output encapsulated ps, if only one page is printed and the
	output is to a file with '.eps' as extension.

- QPSQLDriver:
	Map the TIMESTAMPTZOID type defined in PostgreSQL 7.2 to
	QVariant::DateTime, not QString. Make character based fields
	return correct null/empty strings.

- QRichText:
	Greatly improved HTML export. Handle tables taller than 32767
	pixels. Fixes with lists in HTML documents. Many other
	rendering fixes and memory and speed optimizations. Fixed
	parsing <br>. Now supports the Unicode linebreak
	character. Speedup for removeSelections() when only text in
	one para is selected. Fixed AlignJustify to work properly with
	tabs. Fixed an endless loop in find(). Draw the text cursor
	correctly when the paragraph spacing is larger than 0.

- QSignal:
	Interpret slots whose name contains 'int' correctly
	(e.g. intSlot(int)).

- QSimpleRichText:
	QSimpleRichtext anchorAt() takes images into account.

- QSocket/QSocketDevice:
	Windows only: Detect when the peer closes the connection even
	if you are writing a lot of data to the socket.

- QStyleSheetItem:
	setLineSpacing() now really defines the linespacing of a line,
	not an extra space added to the line spacing.

- QTable:
	Shift+Click on table headers now works as expected in multi
	selection mode. When clicking on a cell item which has the edit
	type QTableItem::WhenCurrent, forward mouse clicks to the cell
	widget, so that it is enough to click on e.g. a checkbox item or
	combobox item once, and no second click is needed to toggle the
	item or open the combobox. clearCell() now deletes the cell's
	item as documented. Fixed tabbing over disabled items. Columns
	that are stretchable also hideable. If the current row or the
	current column gets hidden, move the current cell to a visible
	one. Fixed updating cell widget's positions in setNumRows() and
	setNumCols(). Fixed activateNextCell(). Improved speed of
	removeRows(), removeColumns(), etc. (all functions which swap
	columns and rows) for large tables.

- QTabWidget:
	Make currentPage() return a widget which is consistent with
	page( currentPageIndex() ).

- QTDSDriver:
	Major speed improvement when iterating over large result
	sets. Add support for BIT field types. Cancel any previous
	queries before a new one is executed when the same
	QSqlQuery/QSqlCursor object is used. Previously the result set
	had to be exhausted for this to work.
	Windows only: Make numRowsAffected() return -1 if the result
	set has not yet been processed.

- QTextEdit:
	Fixed append() for the richtext case (it didn't add a new
	paragraph for each append). Made the output format of the
	editor in rich text mode lossless. Fixed support for line
	breaks, they now start a new line in the same paragraph rather
	than a new paragraph. Fixed losing anchor information
	on splitting paragraphs. In RichText mode Ctrl+Return inserts
	a line break and does not start a new paragraph. Fixed a
	repaint problem that sometimes left garbage at the end of the
	editor widget when removing some text. Fixed reacting to
	palette changes and updating the text color correctly. Pasting
	over selected text removes the selected text before inserting
	the clipboard contents.

- QTextStream:
	Avoid calling slow function QChar::networkOrdered()
	repeatedly.

- QToolBar:
	Don't add hidden widgets to extension menu.

- QToolTip:
	If there is just a group text and no tip, then behave
	correctly and hide the group text when the mouse leaves the
	tip area.

- QUrl:
	Make the class Unicode aware. If you construct a QUrl with the
	default constructor and set the entries by hand, the isValid()
	function now returns TRUE.

- QWaitCondition:
	Reset waitcondition when using wakeAll().

- QWidget:
	Don't set the application cursor for invisible widgets.

- QWorkspace:
	Set focus back to the minimized window if the new focused window
	is also minimized. Don't return empty MDI clients in
	the list returned by windowList().

- QXML:
	Report the line number of the XML document as expected when the
	line termination is done by '
'.


****************************************************************************
*                             Extensions                                   *
****************************************************************************

****************************************************************************
*                               Other                                      *
****************************************************************************


****************************************************************************
*                    Qt/Embedded-specific changes                          *
****************************************************************************

****************************************************************************
*                      Qt/Mac-specific changes                             *
****************************************************************************

	
Document Actions
Navigation
 

Patron of KDECustomers

Customers