Qt Declarative (Quick 2)
Go to file
Vitaly Fanaskov 1875ad7f92 Introduce new mechanism to manage palette functionality in QML
Main goals of these changes:
1) Add an ability to work with disabled and inactive palettes from QML
2) Eliminate massive code duplication in qtquickcontrols2 module
3) Provide easily extensible architecture for this piece of
functionality

Architectural part.

Palette
It was decided to not change existing QPalette, but add thin wrappers
around it to provide all required functionality. These wrappers are
highly coupled with QPalette class because of using some enum values
from it.
There are two new classes QQuickPalette and QQuickColorGroup.
QQuickPalette class inherits QQuickColorGroup class and represents
Active/All color group. QQuickPalette also provides an access to three
color groups: Active, Inactive, and Disabled.
In order to access colors the special class QQuickPaletteColorProvider
is used. This is a wrapper around QPalette that provides some
convenience functions.

Interface
The private property "palette" should be exposed.

Implementation
All private parts of classes that implement
QQuickAbstractPaletteProvider have to inherit
QQuickPaletteProviderPrivateBase class. This template class implement
all functionality: create palette, resolve dependencies, connect objects
etc. This is important to mention that related data is lazily
allocatable on demand only. Hence, there is no memory overhead for
regular items.

Change-Id: I911424b730451b1ad47f68fd8007953b66eddb28
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-03-16 14:33:24 +01:00
cmake Update metatypes dependency calculation 2020-02-10 15:08:14 +00:00
coin CMake: Enable cross-building Coin configurations 2020-03-15 12:43:42 +01:00
dist Add changes file for Qt 5.14.1 2020-01-14 06:36:17 +01:00
examples Update dependencies.yaml to latest SHA1s 2020-03-13 14:07:03 +01:00
features Add the skeleton for a D3D12 backend 2016-02-19 14:51:37 +00:00
src Introduce new mechanism to manage palette functionality in QML 2020-03-16 14:33:24 +01:00
tests Introduce new mechanism to manage palette functionality in QML 2020-03-16 14:33:24 +01:00
tools Merge remote-tracking branch 'origin/wip/cmake' into dev 2020-03-12 15:28:15 +01:00
.gitattributes
.gitignore Add .qmake.stash to .gitignore 2019-05-03 08:46:51 +00:00
.gitmodules Update to the latest version of the ecmascript test suite 2018-04-26 20:26:36 +00:00
.prev_CMakeLists.txt CMake: Regenerate and adapt to merge from dev 2020-03-12 14:05:23 +00:00
.qmake.conf Remove QT_NO_LINKED_LIST 2020-02-12 12:48:32 +01:00
.tag
CMakeLists.txt CMake: Add optional dependency on OpenGLWidgets 2020-03-16 14:04:24 +01:00
LICENSE.FDL
LICENSE.GPL2
LICENSE.GPL3
LICENSE.GPL3-EXCEPT Updated license headers 2016-01-20 11:46:25 +00:00
LICENSE.LGPL3
configure.json Move model types into their own library 2019-05-02 09:26:04 +00:00
dependencies.yaml Update dependencies.yaml 2020-03-13 15:17:45 +01:00
qtdeclarative.doxy Add doxyfile for building doxygen documentation 2018-08-16 15:54:40 +00:00
qtdeclarative.pro Fix build without commandlineparser and temporaryfile 2020-03-04 10:48:18 +09:00
sync.profile Move the header checking into ExecutableCompilationUnit 2019-06-14 19:08:51 +02:00