diff -r 000000000000 -r 1918ee327afb dist/changes-3.1.0-b1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dist/changes-3.1.0-b1 Mon Jan 11 14:00:40 2010 +0000 @@ -0,0 +1,692 @@ +Qt 3.1 introduces many significant new features and many improvements +over the 3.0.x series. This file provides an overview of the main +changes since version 3.0.5. For further details see the online +documentation which is included in this distribution, and also +available at http://qt.nokia.com/doc/. + +The Qt version 3.1 series is binary compatible with the 3.0.x series: +applications compiled for 3.0 will continue to run with 3.1. + + +**************************************************************************** +* General * +**************************************************************************** + +Qt Script for Applications +-------------------------- +Qt 3.1 is the first Qt release that can be used with Qt Script for +Applications (QSA). QSA provides a scripting engine, an IDE for +creating and editing scripts and script forms, and bindings to the Qt +API. Script-enabling a Qt application is not difficult and the IDE +makes it easy for resellers and end-users to write their own scripts. +QSA is due for release after Qt 3.1. + + +Qt Designer +----------- +Qt Designer, the visual GUI builder, has undergone several usability +improvements. A new dialog for creating and editing signals and slots +connections has been created: it is much easier to use and much faster +for setting up multiple connections. The widgets are now presented in +an easy-to-use toolbox rather than in toolbars (although you can still +have the toolbars if you want). The property editor now handles common +properties in multiple widgets simultaneously. By popular demand, +WYSIWYG support for QWidgetStack has been added. Rich text is now +supported with a rich text editor. And the code editor can be used for +ordinary member functions as well as for slots. + + +Qt Assistant +------------ +Qt Assistant, the Qt documentation browser, can now be used with +custom documentation sets. This new functionality combined with the +new QAssistantClient class means that you can use Qt Assistant as a +help browser for your own applications. Qt Assistant has also been +enhanced by the addition of a fast full text search engine. + + +Motif +----- +The general industry-wide move away from Motif is leaving more and +more companies in need of a migration solution. But converting large +legacy applications in one step is often impractical. To minimize +risks and to manage the workload companies often want to port code on +a module by module basis. Qt 3.1 includeds a completely new Motif +module that supports hybrid applications in which Qt code and Motif +code coexist. (This obsoletes the earlier rudimentary Qt Xt/Motif +extension.) + + +ActiveX +------- +With the release of Qt 3.1, customers who use Qt for Microsoft Windows +development can now use Qt with ActiveX. The new ActiveQt module +provides a simple API for COM and ActiveX. The module can be used to +create applications which host ActiveX controls, and also to create +applications that serve ActiveX controls (e.g. Internet Explorer +plugins). + + +Qt/Mac +------ +The introduction of Qt/Mac, a Mac OS X port of Qt, with Qt 3.0 has +proved a great success. This port has undergone many improvements in +Qt 3.1, especially with respect to Appearance Manager, anti-aliased +text and user settings. The Qt OpenGL support is greatly improved, and +uses the hardware-accelerated drivers. + + +Qt/Embedded +----------- +Graphics, mouse and keyboard drivers can now be compiled as plugins. + + +Qt library +---------- +In addition to the new additions and enhancements referred to above, +as with all major Qt releases, Qt 3.1 includes hundreds of +improvements in the existing class library. Here is a brief summary of +the most significant changes: + +- QTextEdit has a new text format: LogText. This is a performance and + memory optimized format especially designed for the fast display of + large amounts of text. The format supports basic highlighting, + including bold and colored text. + +- The new QSyntaxHighlighter class makes it both easy and efficient to + add syntax highlighting capabilities to a QTextEdit. + +- QHttp and QFtp in earlier Qt's were implementations of the + QNetworkProtocol. Both have been extended to stand in their own + right. If you missed some flexibility in the network protocol + abstractions of earlier Qt's, the new QHttp and QFtp classes should + provide the solution. + +- QAccel, used to handle keyboard shortcuts, now gracefully copes with + shortcut clashes. If a clash occurs, a new signal, + activatedAmbiguously(), is emitted. Classes that use QAccel, like + QButton and QPopupMenu, make use of this new functionality. + Futhermore QAccel can now handle multi-key sequences, for example, + Ctrl+X,Ctrl+F. + +- QClipboard has been extended to simplify data exchange between + programs. + +- Thread support: almost all methods in the tools classes have been + made reentrant. QApplication::postEvent() and a few other methods + are now thread-safe if Qt is compiled as a multi-threaded library. + (The documentation now states if a class or function is thread-safe + or reentrant.) + +- A QMutexLocker class has been added to simplify the locking and + unlocking of mutexes. + +- Input methods: A selectionLength() function has been added to + QIMEvent. Japanese compositions are now handled correctly. Support + for AIMM based input methods (those working on non-Asian versions of + Win95/98/Me) has been added. + +- Large File support: Qt's internals have been modified to support + Large Files (> 2GB). QFileDialog will now correctly display and + select Large Files. + +- SQL module: Support for prepared query execution and value binding + has been added. Among other benefits, this makes it possible to + write large BLOBs (> 2 KB) to Oracle databases, and to write Unicode + strings to SQL Server databases. + + +Build process +------------- +The build process has been improved: + +- The configure script does not need QTDIR to be set anymore. + + +**************************************************************************** +* Library * +**************************************************************************** + +New classes +================== + +- QBackInsertIterator +- QEventLoop +- QIconFactory +- QMutexLocker +- QSyntaxHighlighter + + +QAction +------------------ +New functions: + void setVisible( bool ) + bool isVisible() const + + +QCanvas +------------------ +New functions: + void invalidate() + bool isValid() const + + +QColorDialog +------------------ +New functions: + static void setStandardColor( int, QRgb ) + + +QAccel +------------------ +New signals: + void activatedAmbiguously( int id ) + + +QApplication +------------------ +The event loop has been moved to the QEventLoop class, making it +easier to integrate other toolkits with Qt. + +New functions: + QEventLoop *eventLoop() const + void setEventLoop( QEventLoop * ) + QString sessionKey() const + + +QClipboard +------------------ +New functions: + void clear( Mode mode ) + bool supportsSelection() const + bool ownsSelection() const + bool ownsClipboard() const + QString text( Mode mode ) const + QString text( QCString& subtype, Mode mode ) const + void setText( const QString &, Mode mode ) + QMimeSource *data( Mode mode ) const + void setData( QMimeSource*, Mode mode ) + QImage image( Mode mode ) const + QPixmap pixmap( Mode mode ) const + void setImage( const QImage &, Mode mode ) + void setPixmap( const QPixmap &, Mode mode ) + + +QDesktopWidget +------------------ +New functions: + const QRect& screenGeometry( QWidget *widget ) const + const QRect& screenGeometry( const QPoint &point ) const + const QRect& availableGeometry( int screen ) const + const QRect& availableGeometry( QWidget *widget ) const + const QRect& availableGeometry( const QPoint &point ) const + + +QFileDialog +------------------ +Large Files (> 2GB) are now correctly displayed and selected. + + +QFileInfo +------------------ +QFileInfo now supports Large Files (> 2GB) internally. To maintain +binary compatibility the QFileInfo API cannot be adapted before Qt 4 +and will truncate file sizes and offsets to 4 GB. + +New functions: + bool isHidden() const + + +QFile +------------------ +QFile now supports Large Files (> 2GB) internally. To maintain binary +compatibility the QFile API cannot be adapted before Qt 4 and will +truncate file sizes and offsets to 4 GB. + + +QDir +------------------ +QDir now supports Large Files (> 2GB). + + +QImEvent +------------------ +New functions: + in selectionLength() const + + +QIconSet +------------------ +New functions: + void installIconFactory( QIconFactory *factory ) + + +QImage +------------------ +New functions: + static QImage fromMimeSource( const QString& abs_name ) + + +QMetaObject +------------------ +New functions: + QStrList enumeratorNames( bool super ) const + int numEnumerators( bool super ) const + static bool hasMetaObject( const char *class_name ) + + +QMenuData +------------------ +New functions: + bool isItemVisible( int id ) const + void setItemVisible( int id, bool visible ) +Both functions are inherited by QMenuBar and QPopupMenu + + +QPaintDevice +------------------ +New functions (x11 only): + static Qt::HANDLE x11AppRootWindow() + static int x11AppDepth( int screen ) + static int x11AppCells( int screen ) + static Qt::HANDLE x11AppRootWindow( int screen ) + static Qt::HANDLE x11AppColormap( int screen ) + static void *x11AppVisual( int screen ) + static bool x11AppDefaultColormap( int screen ) + static bool x11AppDefaultVisual( int screen ) + static int x11AppDpiX( int ) + static int x11AppDpiY( int ) + static void x11SetAppDpiX( int, int ) + static void x11SetAppDpiY( int, int ) + + +QPicture +------------------ +New functions: + void setBoundingRect( const QRect &r ) + + +QPixmap +------------------ +New functions: + bool hasAlpha() const + static QPixmap fromMimeSource( const QString& abs_name ) + + +QPrinter +------------------ +New functions: + void setMargins( uint top, uint left, uint bottom, uint right ) + void margins( uint *top, uint *left, uint *bottom, uint *right ) const + +Improvements: + Handle masked images and pixmaps correctly. Add code to handle + asymmetrical printer margins correctly. + + +QSessionManager +------------------ +New functions: + QString sessionKey() const + + +QStyleOption +------------------ +New functions: + QStyleOption( QCheckListItem* i ) + QCheckListItem* checkListItem() const + +New enums values: + PE_CheckListController, PE_CheckListIndicator, + PE_CheckListExclusiveIndicator, PE_PanelGroupBox + CE_MenuBarEmptyArea + CE_DockWindowEmptyArea + PM_CheckListButtonSize + CT_TabBarTab, CT_Slider, CT_Header, CT_LineEdit + SH_GroupBox_TextLabelVerticalAlignment + + +QThread +------------------ +New functions: + void terminate() + + +QTranslator +------------------ +New functions: + bool load( const uchar *data, int len ) + + +QVariant +------------------ +New functions: + QVariant( const QPen& ) + const QPen toPen() const + QPen& asPen() + bool isNull() const + +New enum values: + KeySequence, Pen + + +QWidget +------------------ +All top-level widgets will now try to find an appropriate application +icon when they're not given one, trying in this order + 1. Parent widget's icon + 2. Top-level widget's icon + 3. Application main widget's icon + +New functions: + bool isFullScreen() const + void setSizePolicy( QSizePolicy::SizeType hor, QSizePolicy::SizeType ver, bool hfw = FALSE ) + +New enum values: + AncestorOrigin + + +QWMatrix +------------------ +Two different transformation modes for painter transformations are now +available. See the QWMatrix documentation for details. + +New functions: + QPointArray mapToPolygon( const QRect &r ) const + double det() const + static void setTransformationMode( QWMatrix::TransformationMode m ) + static TransformationMode transformationMode() + +New enums: + TransformationMode { Points, Areas } + + +QFtp +------------------ +While still remaining a subclass of QNetworkProtocol, QFtp can be now +used directly for more advanced FTP operations. The QFtp documentation +provides details of the extensions to the API. + + +QHttp +------------------ +While still remaining a subclass of QNetworkProtocol, QHttp can be now +used directly for more advanced HTTP operations. The QHttp +documentation provides details of the extensions to the API. + +Related new classes: + QHttpHeader + QHttpResponseHeader + QHttpRequestHeader + + +QSqlDriver +------------------ +New enum values: + Unicode, PreparedQueries, OracleBindingStyle, ODBCBindingStyle + + +QSqlQuery +------------------ +New functions: + bool isForwardOnly() const + void setForwardOnly( bool forward ) + bool exec() + bool prepare( const QString& query ) + void bindValue( const QString& placeholder, const QVariant& val ) + void bindValue( int pos, const QVariant& val ) + void addBindValue( const QVariant& val ) + + +QTableSelection +------------------ +New functions: + QTableSelection( int start_row, int start_col, int end_row, int end_col ) + + +QTable +------------------ +New properties: + int numSelections + +New functions: + void selectCells( int start_row, int start_col, int end_row, int end_col ) + void selectRow( int row ) + void selectColumn( int col ) + void updateHeaderStates() + void setRowLabels( const QStringList &labels ) + void setColumnLabels( const QStringList &labels ) + + +QCString +------------------ +New functions: + QCString &replace( char c, const char *after ) + QCString &replace( const char *, const char * ) + QCString &replace( char, char ) + +New global functions: + QByteArray qCompress( const uchar* data, int nbytes ) + QByteArray qUncompress( const uchar* data, int nbytes ) + QByteArray qCompress( const QByteArray& data ) + QByteArray qUncompress( const QByteArray& data ) +Improvements: + Speed optimisations in lots of the old search and replace + functions. + + +QDate +------------------ +New functions: + int weekNumber( int *yearNum = 0 ) const + static QDate currentDate( Qt::DateTimeSpec ) + + +QTime +------------------ +New functions: + static QTime currentTime( Qt::DateTimeSpec ) + + +QDateTime +------------------ +New functions: + static QDateTime currentDateTime( Qt::DateTimeSpec ) + + +QPtrList +------------------ +New functions: + bool replace( uint i, const type *d ) + + +QRegExp +------------------ +New functions: + QString errorString() + static QString escape( const QString& str ) + int numCaptures() const + + +QSettings +------------------ +New functions: + QSettings( Format format ) + void setPath( const QString &domain, const QString &product, Scope = User ) + void beginGroup( const QString &group ) + void endGroup() + void resetGroup() + QString group() const + +New enums: + Format { Native = 0, Ini } + Scope { User, Global } + + +QChar +------------------ +Updated Unicode tables to Unicode-3.2 + + +QString +------------------ +New functions: + QString &append( const QByteArray & ) + QString &append( const char * ) + QString &prepend( const QByteArray & ) + QString &prepend( const char * ) + QString &remove( QChar c ) + QString &remove( char c ) + QString &remove( const QString & ) + QString &remove( const QRegExp & ) + QString &remove( const char * ) + QString &replace( uint index, uint len, QChar ) + QString &replace( uint index, uint len, char c ) + QString &replace( QChar c, const QString & ) + QString &replace( char c, const QString & after ) + QString &replace( const QString &, const QString & ) + QString &replace( QChar, QChar ) + QString &operator+=( const QByteArray &str ) + QString &operator+=( const char *str ) + static QString fromUcs2( const unsigned short *ucs2 ) + const unsigned short *ucs2() const + +Improvements: + find(), findRev() and contains() use either a fast hashing + algorithm (for short strings) or an optimized Boyer-Moore + implementation for long strings. Lots of smaller performance + optimisations. + + +QTextStream +------------------ +New functions: + QTextCodec *codec() + + +QTimeEdit +------------------ +New properties: + Display display + +New functions: + uint display() const + void setDisplay( uint ) + +New enums: + Display { Hours, Minutes, Seconds, AMPM } + + +QFrame +------------------ +New enum values: + GroupBoxPanel + + +QGroupBox +------------------ +New properties: + bool flat + +New functions: + bool isFlat() const + void setFlat( bool b ) + + +QListBox +------------------ +New functions: + QListBoxItem* selectedItem() const + + +QListView +------------------ +New functions: + int sortColumn() const + + +QSlider +------------------ +New functions: + void addLine() ( as slot) + void subtractLine() (as slot) + + +QTextBrowser +------------------ +New functions: + void sourceChanged( const QString& ) + void anchorClicked( const QString&, const QString& ) + + +QTextEdit +------------------ +QTextEdit offers another TextFormat (LogText), which is optimized +(speed and memory) for displaying large read-only texts normally used +for logging. + +New properties: + bool allowTabs + +New functions: + QString anchorAt( const QPoint& pos, AnchorAttribute a ) + void setAllowTabs( bool b ) + bool allowTabs() const + void insert( const QString &text, uint insertionFlags = CheckNewLines | RemoveSelected ) + +New signals: + void clicked( int parag, int index ) + void doubleClicked( int parag, int index ) + +New enums: + TextInsertionFlags { RedoIndentation, CheckNewLines, RemoveSelected } + +New enum values: + AtWordOrDocumentBoundary + + +QToolButton +------------------ +New properties: + TextPosition textPosition + +New functions: + TextPosition textPosition() const + void setTextPosition( TextPosition pos ) + +New enums: + TextPosition { Right, Under } + + +QTooltip +------------------ +New functions: + static void setWakeUpDelay( int ) + + +QWhatsThis +------------------ +New functions: + static void setFont( const QFont &font ) + + +QDomDocument +------------------ +New functions: + QString toString( int ) const + QCString toCString( int ) const + + +QFont on X11 +------------------ +Improvements: + Safe handling of huge font sizes. Added support for the new + Xft2 font library on XFree-4.x. + + +QRegion on X11 +------------------ +Improvements: + Removed the 16 bit size limitation + +****************************************************************************