| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch will add a focus frame to the macOS style.
We use one focus frame item that we move around according
to changes to the focus object.
It's normally the background delegate's responsibility to
draw a focus frame, so we take care to only draw the
native focus frame for controls with default delegates.
(to be consistent with the other styles)
Change-Id: Iaa7202675c1aad2fc19682563ac1afb6e686c105
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In Qt 5, QtQuickControls2Plugin::registerTypes() was responsible for
calling initializeTheme() on each style plugin. Now that we delegate
more work to the QML engine, each style plugin calls initializeTheme()
via registerTypes().
To avoid fallback styles overwriting font and palette data set by the
current style, we need to check if the theme has been intialized before
calling initializeTheme(). To do this, we add a static
"themeInitialized" bool that QQuickStylePlugin sets to true after
calling intializeTheme() for the first time. It checks this value and
avoids calling intializeTheme() if it's true.
We also need to make QQuickStylePlugin ensure that the theme it's
initializing belongs to the current style.
Fixes: QTBUG-86303
Change-Id: Ie65e646677c78622829f4949c41cb79204cf5786
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
|
|
| |
Some controls needs more care, but that's for follow-up commits
Change-Id: Ia7afeccf06f2f12dbef1402bf5975807cad8adcb
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
|
|
| |
QString: :compare() return 0 if they are equal, just like strcmp...
Change-Id: Ib79513fed158f5068f27d77dfabe18fcff597aee
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
|
|
|
| |
This ensures that we received the warning we expect in
tst_StyleImports::importStyleWithoutControls when run with native styles.
Change-Id: I290f4e72222688e68ae36ace36f1d8be4bedaf31
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
After introducing the new registration system in Controls, the
theme palette picked up colors from the Default style. Until this
is fixed, set the system palette explicitly.
Task-number: QTBUG-86303
Change-Id: Ib4c90856bd5410c042160b532175a48fdaea0fbd
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When we delete QStyle, it will free up it's own internal
resources. Especially on macOS, this means releasing a lot
of NSViews and NSCells from the QMacStyle destructor. If we
did this from ~QtQuickControls2NativeStylePlugin, it would
happen when the plugin was unloaded from a Q_DESTRUCTOR_FUNCTION
in QLibrary, which is very late in the tear-down process, and
after qGuiApp has been set to nullptr, NSApplication has stopped
running, and perhaps also other static platform variables (e.g in
AppKit?) has been deleted. And to our best guess, this is also why
we see a crash in AppKit from the destructor in QMacStyle. So for
this reason, we delete QStyle from a post routine rather than from
the destructor.
Change-Id: I9dfb0d3394f14e5cd8b88d5a5fbbf3b73284faf1
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
|
|
|
|
|
|
|
| |
It also includes qwindowsxpstyle and qwindowsvistastyle,
but they do not compile at the moment
Change-Id: Ie9ce0bf99d620d65534c2660150117e4747f5c86
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
| |
Change-Id: I4af37d2ac4ab4bd27baac02286e46726eb5e24e1
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
creating native styles
This is the initial patch for adding native style support to controls2.
The gist of the patch is that it copies QStyle from widgets (including the
mac plugin style), remove all notions of widgets, tweak it as needed, and
make it compile inside the qtquickcontrols2 repository as a separate
QML plugin (QtQuick.NativeStyle).
The "new" QStyle is then used to draw primitives onto nine-patch-images that can
be rendered by the scene graph. Each such primitive/image will be wrapped by a
QQuickStyleItem (which is a subclass of QQuickItem). E.g a button background will
be implemented by QQuickStyleItemButton.cpp. This item can then be placed anywhere
in the QML code to draw a native-looking button background.
Controls2 has its own styling API, where a style consist of a set of QML files
that extend template controls written in C++. To enable native styling, we simply
follow the exact same approach; We create a style folder per platform alongside
the other styles in controls2. Each style will contain a set of qml files for the
controls (Button.qml, Slider.qml, etc), and inside each control, the style items
will be used to draw the default delegates. Since it's likely that each such
qml file will be implemented equal in all the desktop styles (but not always), the
native style plugin contains a set of default controls (e.g DefaultButton.qml) that
a platform style can choose to inherit from and extend as needed.
Included is also an example called "DesktopGallery" that can be used to
test and view the controls.
Change-Id: I8b45aa7d493930f552d3ad2e3e3e7184129a9d6c
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|