Go to file
Jędrzej Nowacki 08863b6fda Refactor QVariant handlers.
QVariant implementation is based on delegation to a handler. The handler
has rather simple construction, it is a set of function that implements
a switch statement over known types and redirects calls to a right
method of an encapsulated types instance. Unfortunately after qt
modularization project, it is not easy to use types directly from
different modules, as they can be undefined or completely unaccessible.
Which means that each module has to implement own handler to cooperate
correctly with QVariant. We can suspect that list of modules known to
QVariant will grow and it is not limited to GUI, Widgets and Core,
therefore it would be nice to have an unified, from performance and
source code point of view, way of working with handlers.

This patch is an attempt to cleanup handlers. Keynotes:
- Each handler is working only on types defined in the same module
- Core handler implements handling of primitive types too
- Custom types have an own handler
- Each handler is independent which means that dispatch between handlers
  is done on QVariant level
- Handlers might be registered / unregistered using same interface

Change-Id: Ib096df65e2c4ce464bc7a684aade5af7d1264c24
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-01-04 14:25:25 +01:00
bin fixqt4headers: Add QtCore to folders (for moved item models). 2011-12-20 16:18:27 +01:00
config.tests Fix fvisibility.test for "QMAKE_CXX = ccache g++" 2011-12-18 19:12:42 +01:00
dist Always load the openssl configuration. 2012-01-03 15:12:24 +01:00
doc/src Move snippets from qtdoc. 2011-12-06 22:29:01 +01:00
examples Change the default value of QSortFilterProxyModel::dynamicSortFilter 2012-01-02 16:43:02 +01:00
lib Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
mkspecs Fix cmake files for static builds. 2011-12-23 17:35:33 +01:00
qmake Remove unused -DQT_NO_PCRE from qmake makefiles 2011-12-23 21:24:25 +01:00
src Refactor QVariant handlers. 2012-01-04 14:25:25 +01:00
tests Refactor QVariant handlers. 2012-01-04 14:25:25 +01:00
tools configure: Remove -nokia-developer option 2012-01-04 09:58:59 +01:00
util Fix up the accessibility inspector. 2011-12-22 00:47:03 +01:00
.gitattributes Added .tag file with Git revision. 2011-05-03 16:23:49 +02:00
.gitignore Add V8 snapshot support 2011-11-22 13:10:56 +01:00
.gitmodules Add QtV8 library to QtBase 2011-08-29 10:16:01 +02:00
.tag Added .tag file with Git revision. 2011-05-03 16:23:49 +02:00
configure configure: Remove -nokia-developer option 2012-01-04 09:58:59 +01:00
configure.exe Rebuild configure.exe. 2011-12-21 22:58:56 +01:00
header.BSD Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
header.FDL Update licenseheader text in source files for qtbase Qt module 2011-05-24 12:34:08 +03:00
header.LGPL Update licenseheader text in source files for qtbase Qt module 2011-05-24 12:34:08 +03:00
header.LGPL-ONLY Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
INSTALL Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
LGPL_EXCEPTION.txt Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
LICENSE.FDL Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
LICENSE.LGPL Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
LICENSE.PREVIEW.COMMERCIAL Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
qtbase.pro Ensure qmodule.pri is installed. 2011-11-23 00:12:03 +01:00
sync.profile Fix source incompatibility for QVariant{Map, Hash, List} 2011-11-14 18:41:17 +01:00