| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
QQuickIconLabel is a wrapper around QQuickText & QQuickImage. While
the alignment is mostly handled by layouting the internal QQuickText
and QQuickImage instances, it must also propagate the alignment so
that the text and image elements themselves also apply the correct
content alignment.
Task-number: QTBUG-64492
Change-Id: Ieb9d26fce703247bc6e2e61fa38e44c29937d1ad
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Unfortunately this comes a bit late in the 5.10 cycle, but this should
be released together with the rest of the mnemonics stuff going out in
5.10, because it affects the value of AbstractButton/Menu(Bar)Item::text.
As the removed TODO comments and altered tests indicate, previously the
ampersand was blatantly stripped out. It would be worse to change it
later once people have already started using mnemonics and rely on the
behavior in custom styles.
The necessary modifications to QQuickText were added in qtdeclarative
commit 65ef4ba.
Task-number: QTBUG-61422
Change-Id: Iaa73da8c012e9a6019743cf98f5bdc02527064e5
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Add an internal CheckLabel helper that simply initializes a few
QQuickText properties with defaults that are suitable for CheckBox,
Switch, and RadioButton. This gives a 10% boost on desktop in debug
mode, and a 5% boost on a TX1 in release mode.
Change-Id: I82fead9ca22b6aa74f24924d240c924b2a42a912
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QQuickImageBase::load() cannot call until the component creation is
completed, because it requires an associated QML engine. All calls to
updateIcon() are guarded with the appropriate isComponentComplete()
check, but the sourceSizeChanged() signal was connected directly to
updateIcon(). Establish the signal-slot connection at component
completion to avoid calling updateIcon() to soon.
Task-number: QTBUG-63959
Change-Id: I3c935291796dbae031d2728e1d51c55596a51cd0
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
| |
If the padding is larger than the available size, the rectangle node
should not be given a negative size, because the node is still rendered
and it results to undesired rendering artifacts.
Change-Id: I082649badb04fe33dbea2ca2c4efcf0f179f41a8
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
| |
Change-Id: I60dd2159e7c5c9bbdbea415ac3fe2e40881dbaba
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
NOTE: Now that we have configurable palettes, we cannot assume that
the default color of the indicator image matches the default palette
color. Therefore we need to make ColorImage aware of the default color
to avoid unnecessary expensive colorizing (see f0697c6). An extra QML
property assignment of a constant value is much cheaper than colorizing
the image.
Starting from f0697c6, the indicator color has been defined like this:
color: control.visualFocus ? Default.focusColor : undefined
This assumes that the image has a default color of #353637 when not
focused. With this, qmlbench delegates_dial.qml gives a result of 76
frames.
The following options were considered:
A)
color: visualFocus ? palette.highlight : palette.dark
=> 71 frames
B)
color: visualFocus ? palette.highlight :
palette.dark !== "#353637" ? palette.dark : "transparent"
=> 71 frames
C)
defaultColor: "#353637"
color: visualFocus ? palette.highlight : palette.dark
=> 75 frames
The last option was a clear winner.
Task-number: QTBUG-63369
Change-Id: Ib8d56724de55b874d1c4ecdf0c09b91cfd2dc3df
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QQuickColorImageProvider got replaced by QQuickColorImage in 9fc3659.
This seems to have introduced a performance regression in several
controls that are now colorizing images even when there's no need to.
Various indicator images have the correct default color that matches
the normal state. They need to be colorized only when gaining focus
or being disabled, for example.
The improvement in qmlbench results:
- CheckBox: 70 => 84 frames
- ComboBox: 88 => 92 frames
- Dial: 73 => 77 frames
- MenuItem: 73 => 84 frames
Change-Id: I9155042542f5069cff201a1730b9dd2a62cffd67
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
0dee566e98f5ff4f224e596de1c04de4f9685df4 (in qtbase) added a check for
empty file names to QFileSystemEngine, and we run into that:
Empty filename passed to function
The fix is to check for empty file names before calling
QFile::exists().
Change-Id: I273ea62f97ddcbf5b1a7952405a67ccb45c7672a
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Imagine style is based on image assets. The style comes with a
default set of images, but the images can be easily changed by
providing a directory with images using a predefined naming convention.
[ChangeLog][Controls] Added the Imagine style, which is based on
image assets that can be provided using a predefined naming convention.
Task-number: QTPM-517
Change-Id: I550d7dac9a9686d60bec15655ac92dea9f36149c
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|\
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
.qmake.conf
tests/auto/controls/data/tst_scrollindicator.qml
Change-Id: I1f5581ae7814c0d4152e4c9b79a30a8af5a3a17b
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
2c4b2d48 made Tumbler's wrap property follow its count by default,
but did so using updatePolish() to account for the use case where a
items are appended to the model in a for loop, as is done in
TumblerDatePicker.qml in Tumbler's auto tests. This (appending items
one at a time in a for loop) is not a good idea, but it should work.
The problem with the solution is that the delay means that the use
cases mentioned in the referenced bug report were broken.
This patch removes the delay. The recursion guards are necessary due to
the complex nature of TumblerView (and its non-standard use of the Qt
Quick views), as they prevent a memory leak in
QQuickListView::createHighlight() from being introuduced.
We now call deleteLater() to ensure we do not interfere with the views'
internal operations, and hence we also perform a few extra operations
at the same time as insurance (although it appears that simply
unparenting the internal view from QQuickTumblerView is enough to get
the tests to pass).
Task-number: QTBUG-61374
Change-Id: Ifef9e99522ea183b282ac862f346beaed12d0c09
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/imports/controls/ButtonGroup.qml
tests/auto/controls/data/tst_container.qml
tests/auto/menu/tst_menu.cpp
Change-Id: Ie8ee7e4f83f3fda6a09507b060576ebda929a7cd
|
| |
| |
| |
| |
| | |
Change-Id: Ie12bbad5981af263d5dc8fcbb0e7674b9e823132
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/imports/controls/doc/src/qtquickcontrols2-index.qdoc
src/imports/controls/doc/src/qtquickcontrols2-styles.qdoc
src/quicktemplates2/qquickapplicationwindow.cpp
src/quicktemplates2/qquickmenu.cpp
src/quicktemplates2/qquickmenu_p.h
src/quicktemplates2/qquickpopup.cpp
tests/auto/auto.pro
Change-Id: I856a022d38abd84763127539f46ef032ddc53c3d
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Filter out macOS debug symbol (.dSYM) directories from the list
of available styles.
Task-number: QTBUG-60973
Change-Id: I5b9c3f4af946d44b1601f32bf7da699c29a86689
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
A style's default palette is specified in qtquickcontrols2.conf in
a "Palette" group under the style's section. QSettings supports the
following two alternative syntaxes:
[Fusion]
Palette\Window=#dedede
Palette\WindowText=#212121
or
[Fusion\Palette]
Window=#dedede
WindowText=#212121
Change-Id: I01bf44d9e332064e955e95f619de634fcb79f010
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The sections were added while the Fusion style was under development.
Now that the purpose-field becomes shorter since doesn't have to repeat
"QQC2", we can make it more descriptive by mentioning also that it's a
desktop-oriented style.
Change-Id: Iffd4ee56d8f33d5b98a6c7842ed43dcd96991995
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
A style's default font is specified in qtquickcontrols2.conf in
a "Font" group under the style's section. QSettings supports the
following two alternative syntaxes:
[Default]
Font\Family=Open Sans
Font\PixelSize=20
or
[Default\Font]
Family=Open Sans
PixelSize=20
[ChangeLog][Controls] Added support for specifying the default
font for different styles in qtquickcontrols2.conf.
Change-Id: I54e1efb79a2913eab35174dbf09b6956fe740e28
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|\|
| |
| |
| |
| |
| |
| | |
Conflicts:
src/quicktemplates2/qquickrangeslider.cpp
Change-Id: I7eb990cfdc91173f86552841ba16536b35ea09cf
|
| |
| |
| |
| |
| |
| | |
Change-Id: I5beb6770ef3cea097c4baa8384e25f43190fdd9d
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
[ChangeLog][Controls] Introduced a Fusion style that offers
a platform agnostic desktop-oriented look'n'feel.
Change-Id: Id1c1baf10f4b3a79e89bcc72f6d170ed0b2cc8b0
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The Default style will be changed to use palettes, and it will be also
possible to define the default fonts and palettes for any style in the
qqc2.conf file, so the Default style needs its own proxy theme.
Change-Id: I0262f7a1f783daa62ca4afbdf3c8fe29d989ca36
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I356562c298c63586108fd1c993a818b53f227ff0
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I453ec5ac798bb5904495b82c6e0e06c40b3a9a70
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: Ie5f58cd1d6aad04388d5f2e611ac32ac36752543
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
While selecting style files, the standard built-in platform and local
file selectors ("+linux", "+macos", "+windows"...) must be prefixed
with the standard file selector indicator ("+"). Previously the style
selector would not pick up platform-specific style files unless they
were supplied without the prefix.
[ChangeLog][Controls][Styles] Fixed the style selection mechanism so
that now it is possible to organize platform and locale-specific files
into sub-directories, such as "+linux", "+macos", and "+windows".
Change-Id: Ia44b6f14fd0247943486fd27609147827bda9666
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
updateIcon() is no longer called, so we can move its contents into
syncImage(), which is called by updateOrSyncImage(), which is called by
QQuickIconLabel::setIcon().. which is called each time any of the icon
properties change (now that it's a value type).
Task-number: QTBUG-60807
Change-Id: Id1ff875e0855bd76755d49466f82c2eac36ffd09
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QQuickIcon no longer inherits QObject, but becomes a light-weight
implicitly shared Q_GADGET-type, that is passed by value the same
way fonts and colors are.
Before:
SUB: OS: Fedora 25 (Workstation Edition)
SUB: QPA: xcb
SUB: GL_VENDOR: Intel Open Source Technology Center
SUB: GL_RENDERER: Mesa DRI Intel(R) Haswell Desktop
SUB: GL_VERSION: 3.0 Mesa 13.0.4
SUB: running: benchmarks/auto/creation/controls/delegates_buttoncontrol2.qml
SUB: 110 frames
SUB: 109 frames
SUB: 109 frames
SUB: 109 frames
SUB: 109 frames
SUB: Average:
SUB: 109.2 frames; using samples; MedianAll=109; StdDev=0.447214, CoV=0.00409536
After:
[...]
SUB: running: benchmarks/auto/creation/controls/delegates_buttoncontrol2.qml
SUB: 123 frames
SUB: 124 frames
SUB: 124 frames
SUB: 122 frames
SUB: 125 frames
SUB: Average:
SUB: 123.6 frames; using samples; MedianAll=124; StdDev=1.14018, CoV=0.00922472
Change-Id: I604532204fb94fc0726d0c9b8b6097f9ebc265e8
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/imports/controls/universal/CheckDelegate.qml
src/imports/controls/universal/RadioDelegate.qml
src/imports/controls/universal/Switch.qml
src/imports/controls/universal/SwitchDelegate.qml
Change-Id: I9bca4b8d9ce3f6c5c7589daa0ced7d0353f42efc
|
| |
| |
| |
| |
| | |
Change-Id: I1472d2f72cf86e2ba66c9cccffbad73061100974
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QQuickPixmap's implicitSize is the original size of the image on disk
before any scaling was done on it, which means that it doesn't account
for the scaling that QQuickImageProviderWithOptions::loadSize() does.
This was causing updateFillMode() to alternate between setting
PreserveAspectFit and Pad when the icon color was changed.
I was not able to come up with an auto test that reproduced the issue.
Task-number: QTBUG-60528
Change-Id: I1cc31f0c50875d794c37a6fc76ff0942e44d271a
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QQuickIconImage needs to be associated with a QML context to be able
to call QQmlContext::resolvedUrl(), which in turn passes it to the URL
interceptor aka. QQmlFileSelector.
Change-Id: Iff34fb8316c765ac0ff04d5d7a6ab23002b31385
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QPainter threw such warnings:
QPainter::begin: Paint device returned engine == 0, type: 3
QPainter::setCompositionMode: Painter not active
Task-number: QTBUG-60200
Change-Id: I2cdedb7a547d0c069964929663297c969de9b2a7
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Now that QQuickImage is exported, we can colorize images using a
simple QQuickImage subclass instead of using an image provider. The
main issue with QQuickColorImageProvider was that it was based on
QGuiApplication::devicePixelRatio(). Now each QQuickColorImage handles
its device pixel ratio correctly depending on which screen it is on.
Even though we now have to use two bindings (color and source) instead
of encoding the color to the source, at the same time we can remove the
sourceSize bindings that were added as image provider specific high DPI
workarounds (ca87ab8).
Task-number: QTBUG-58925
Change-Id: Iba14d2afe3bda540189682ba5be7c58d907d88f7
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Before:
Average: 124.6 frames; using samples; MedianAll=125; StdDev=0.894427, CoV=0.00717839
After:
Average: 134 frames; using samples; MedianAll=134; StdDev=0.707107, CoV=0.00527692
Task-number: QTBUG-59746
Change-Id: I67dac9e51aba908e2a22f64a2b2c906d4a6b573b
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I4028890dafcd4c79b26a9592045d5e2825dd100d
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Before:
Average: 120.2 frames; using samples; MedianAll=120; StdDev=0.447214, CoV=0.00372058
After:
Average: 129.8 frames; using samples; MedianAll=130; StdDev=0.447214, CoV=0.00344541
Task-number: QTBUG-59746
Change-Id: I44b521688cd60e7e287968828f9d4062cc642a0d
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
This will be the default for TabButton and RoundButton.
Change-Id: I9ccb0d35f33a80fe7e3da26617ed6f42232afe17
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
The contents of menu items and item delegates must be aligned to
the left in left-to-right UIs, or to the right in right-to-left UIs.
Change-Id: Ib4064f6a8162306d446189cadebb80e12d3cd35d
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Another micro-optimization to tell the QML engine that it doesn't need
to lookup potentially overshadowed properties in the class hierarchy.
Change-Id: I87ec48823afee2bbc93027dd098c4e73f37bca59
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QQuickText is optimized to avoid unnecessary implicit size calcuation.
It can make a big difference whether QQuickText::implicitWidth() is
called while the text element is complete. "Bind" to QQuickText's
implicit size directly to let it apply the optimization tricks. This
way QQuickTextPrivate::setupTextLayout() is called only once during
the construction of QQuickIconLabel. Only layouting is post-poned
until component completion anymore.
Change-Id: Ide6bbddadf7d36ab908064b8545e1b4ed9474455
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Calling setWidth() & setHeight() or setX() & setY() calls the virtual
geometryChanged() method twice. Calling setSize() or setPosition() does
the move/resize operation in one go.
Change-Id: I136b9be1443e6ec11407081010aadc493417c627
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Reduce indirection between the public and private objects. Things like
width, height, and componentComplete can be accessed directly in the
private object instead of asking them from the public object, which in
turn asks them from the private object. Furthermore, when direct access
is available on the stack, reference directly instead of repeatedly via
the d-ptr.
Change-Id: Idbb40bc86ebff7b7b22e21050941afd6f0027bfe
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
In preparation for the next patch which adds a "QString text"
property to the API.
Change-Id: Ie904108353c37a02cbc992c067f3e09aed9c2497
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
No QML code relies on these.
Change-Id: I9311d80b8d53914e1db7aa37ed9388c279f0563a
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
There are some performance improvements planned that require changes
to the class, resulting in it no longer being a layout "container".
Change-Id: Ie29f2f95eebb64b3b018746f93763fdbe79625f0
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is necessary when the layout has an explicit size larger than
its implicit size, and hence child item implicit size changes don't
trigger geometryChanged() (where layout() is called).
Change-Id: Ieacebff50503c101358e1dd6fda85ac495120af7
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I4b6b36da99633d5f9eebf090c5f0d8a3d2829e12
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Allow passing QObjectPrivate, so sub classes can use pimpl if they
want, like the old QQuickPalette implementation already does...
Change-Id: I48b6256bf63cb91697753ba9b5644c649574fdb0
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|