Previously the method attempted to reset only as a last resort.
Now reset() is deprecated and resetting must happen between emitting
modelAboutToBeReset() and modelReset(). Since this suffices in all
cases to notify views that they must reinterrogate the model, it is no
longer necessary to signal explicitly row removals and insertions
within the scope of the reset.
Additionally, fetchMore() is now called within the scope of the reset
so insert signals do not have to be emitted here either.
This improved handling of resetting in QSqlQueryModel also allows the
cache in QSqlTableModel to be cleared directly at select().
This change may actually allow views to operate more efficiently since
they no longer have to react to separate row removal and insert
signals. Views can avoid pointless deallocation and reallocation
by considering row count only after the reset is finished. The cost is
that the columns and horizontal headers must be considered in the view
at each setQuery() call. In any case, it is not clear that trying to
be smart about this in the model justifies additional complexity.
Tests had to be adjusted where they expected explicit row removal
and insert signals.
Change-Id: I4f7eac1419824361d7d9bdcc6a87092b33e80d7a
Task-Id: QTBUG-25419
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Honglei Zhang <honglei.zhang@nokia.com>
This is Qt version %VERSION%.
Qt is a comprehensive cross-platform C++ application framework. Qt 4
introduces new features and many improvements over the 3.x series. See
http://qt.nokia.com/doc/latest/qt4-intro.html for details.
The Qt 4.x series is not binary compatible or source compatible with
the 3.x series. For more information on porting from Qt 3 to Qt 4, see
http://qt.nokia.com/doc/latest/porting4.html.
INSTALLING Qt
If you have a source package (a .tar.gz, or .zip file), follow the
instructions in the INSTALL file.
On Windows and Mac OS X, if you want to install the precompiled binary
packages, simply launch the package and follow the instructions in the
installation wizard.
For Mac OS X Carbon, the binary package requires Mac OS X 10.4 (Tiger) or
later and GCC 4.0.1 to develop applications. Its applications will run
on Mac OS X 10.4 and above.
For Mac OS X Cocoa, the binary package requires Mac OS X 10.5 (Leopard) or
later and GCC 4.0.1 to develop applications. Its applications will run
on Mac OS X 10.5 and above.
If you want to install the precompiled binary package for Symbian,
follow these instructions:
http://qt.nokia.com/doc/%SHORTVERSION%/install-symbian-installer.html
EXAMPLES
Once Qt is installed, we suggest that you take a look at the examples
to see Qt in action.
For desktop computers, run the Qt Examples by opening them in Qt Creator.
For embedded devices, launch the Qt 'fluidlauncher' example, either through
the platforms filebrowser or the built in menu system.
REFERENCE DOCUMENTATION
The Qt reference documentation is available locally in Qt's doc/html
directory. You can use Qt Assistant to view it; to launch Assistant,
type 'assistant' on the command line or use the Start menu. On Mac OS
X, you can find it in /Developer/Applications/Qt. The latest
documentation is available at http://qt.nokia.com/doc/.
SUPPORTED PLATFORMS
For a complete list of supported platforms, see
http://qt.nokia.com/doc/%SHORTVERSION%/supported-platforms.html.
COMMERCIAL EDITIONS
Desktop Edition licensees can use all the modules provided with their
Qt package.
GUI Framework licensees may only use the classes contained in
the QtCore, QtGui (except QGraphicsView), QtTest, QtDBus and
Qt3Support modules.
For a full listing of the contents of each module, please refer to
http://qt.nokia.com/doc/%SHORTVERSION%/modules.html
HOW TO REPORT A BUG
If you think you have found a bug in Qt, we would like to hear about
it so that we can fix it. The Qt bug tracking system is open to the
public at http://bugreports.qt-project.org/.
Before reporting a bug, please use the bug-tracker's search functions
and consult http://qt.nokia.com/developer/faqs/ to see if the issue is
already known.
Always include the following information in your bug report: the name
and version number of your compiler; the name and version number of
your operating system; the version of Qt you are using, and what
configure options it was compiled with.
If the problem you are reporting is only visible at run-time, try to
create a small test program that shows the problem when run. Often,
such a program can be created with some minor changes to one of the many
example programs in Qt's examples directory, or to the autotests that
are available in the public source repository on http://qt.gitorious.org/.
Qt is a trademark of Nokia Corporation and/or its subsidiary(-ies).