| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
Check if the user has set Accessible.name before setting it to the
control's text/title/etc.
Fixes: QTBUG-66583
Change-Id: I8b2c8ab3f8a8ae8e76c8e6a241260b7f90eca254
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When changing the enabled state of a Menu after component completion,
the background would not change. The problem was that
QQuickPopup::paletteChanged() was not being emitted when the enabled
state changed, resulting in QQuickControl::palette() (which
QQuickPopup::palette() forwards calls to via its popupItem) not
being called. QQuickControl::palette() changes the palette's current
color group to QPalette::Disabled when it is disabled, so if it's not
called, the popup's colors won't change.
Fix the issue by adding a virtual enabledChange() function to
QQuickControl, which QQuickPopupItem can override to emit both
QQuickPopup::enabledChanged() (saving a connection in the process)
and QQuickPopup::paletteChanged(). This ensures that bindings to
QQuickPopup::palette are re-evaluated.
The patch adds a virtual instead of just emitting paletteChanged()
in QQuickPopup::setEnabled(), because we also want to be notified
of indirect enabled state changes, such as those coming from
parent items.
Change-Id: Ibdbd05f27b5a74fe731bda9d6698cbf6b8f81785
Fixes: QTBUG-73447
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
|
|
| |
We don't have the conflicting virtual getters anymore.
Change-Id: Ia20bfa0a0b1aa67c35a23270eb0241018f8e0ada
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/quicktemplates2/qquickabstractbutton_p_p.h
src/quicktemplates2/qquickcombobox.cpp
src/quicktemplates2/qquickcontainer.cpp
src/quicktemplates2/qquickcontrol.cpp
src/quicktemplates2/qquickcontrol_p_p.h
src/quicktemplates2/qquickdialog_p_p.h
src/quicktemplates2/qquickdialogbuttonbox.cpp
src/quicktemplates2/qquickdialogbuttonbox_p_p.h
src/quicktemplates2/qquickdrawer.cpp
src/quicktemplates2/qquickmenubar.cpp
src/quicktemplates2/qquickmenubar_p_p.h
src/quicktemplates2/qquickpage.cpp
src/quicktemplates2/qquickpage_p_p.h
src/quicktemplates2/qquickpane.cpp
src/quicktemplates2/qquickpane_p_p.h
src/quicktemplates2/qquickpopup.cpp
src/quicktemplates2/qquickpopup_p_p.h
src/quicktemplates2/qquickrangeslider.cpp
src/quicktemplates2/qquickscrollview.cpp
src/quicktemplates2/qquickslider.cpp
src/quicktemplates2/qquickspinbox.cpp
src/quicktemplates2/qquickswipeview.cpp
src/quicktemplates2/qquicktabbar.cpp
src/quicktemplates2/qquicktextarea_p_p.h
src/quicktemplates2/qquicktextfield_p_p.h
src/quicktemplates2/qquicktheme_p.h
Change-Id: I6e2b8fe99e51e3e26c87546aa66af045bc429ec4
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The code is more readable and less error-prone (this patch caught a few
uninitialized members) when the members are initialized in the same
place where they are declared. In many cases, empty default destructors
can be entirely removed, and we get faster implicitly declared inline
default constructors defined by the compiler.
Change-Id: I14c5448afc901f9b2ac5965f28c1c26c0b646c08
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I574efd6c98680e247012f3e141d7d8fc8b40e37f
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: Ia32f3004cf540f995344286683d754558369f279
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
a064824 added QQuickContentItem to provide more useful debug output.
This improves the debug output further by providing the correct QML
type name for types inherited from Pane and Popup, such as Frame and
Dialog.
With:
ApplicationWindow {
Pane { Component.onCompleted: console.log(contentItem) }
Frame { Component.onCompleted: console.log(contentItem) }
Popup { Component.onCompleted: console.log(contentItem) }
Dialog { Component.onCompleted: console.log(contentItem) }
Component.onCompleted: console.log(contentItem)
}
Before:
qml: QQuickContentItem(0x7fa3397cfa70, "ApplicationWindow")
qml: QQuickContentItem(0x7fa3397d6f10, "Popup")
qml: QQuickContentItem(0x7fa3397d3f00, "Popup")
qml: QQuickContentItem(0x7fa339534990, "Pane")
qml: QQuickContentItem(0x7fa339534e40, "Pane")
After:
qml: QQuickContentItem(0x7fbebfce3210, "ApplicationWindow")
qml: QQuickContentItem(0x7fbebfcea790, "Dialog")
qml: QQuickContentItem(0x7fbebfce7730, "Popup")
qml: QQuickContentItem(0x7fbebfcf61d0, "Frame")
qml: QQuickContentItem(0x7fbebfcf4d20, "Pane")
Change-Id: Ie8ab2b0c576f3bda7edf9840f7d030d3eef383f3
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
With the following code:
ApplicationWindow {
Component.onCompleted: print(contentItem)
}
Before:
QQuickItem(0x16043e52600)
After:
QQuickContentItem(0x28a89b96440, "ApplicationWindow")
QQuickWindow has a similar concept (QQuickRootItem).
Change-Id: I6504b62c69cfd7d9036d5c200a65542b953bc7bc
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Replace the old enums that were originally copied from QPlatformTheme,
including irrelevant entries for DockWidget, MdiSubWindow, MessageBox,
with a unified enum that will be matched to cover everything needed
for theming fonts and palettes for Qt Quick Controls 2.
Task-number: QTBUG-67062
Change-Id: Ia99d092f28c00210c0c7f24d4241eb5a5d9ceb5b
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
| |
QPlatformTheme is too limited for our theming purposes. We need support
for separate palettes (and later, icon colors) in dark and light themes.
Also, the fact that Qt Quick Controls 2 injects a platform proxy theme
does have undesired side effects in Qt Widgets and Qt Quick Controls 1.
Therefore, we start separating QPlatformTheme and QQuickTheme. The first
step is to eliminate some direct QPlatformTheme access in QQuickControl
and route it via QQuickTheme instead.
Task-number: QTBUG-51921
Change-Id: I055471a75ed6f26968796496efd1892975447c98
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/imports/controls/BusyIndicator.qml
src/imports/controls/CheckBox.qml
src/imports/controls/CheckDelegate.qml
src/imports/controls/ComboBox.qml
src/imports/controls/DelayButton.qml
src/imports/controls/Dial.qml
src/imports/controls/ItemDelegate.qml
src/imports/controls/MenuItem.qml
src/imports/controls/RadioButton.qml
src/imports/controls/RadioDelegate.qml
src/imports/controls/SwipeDelegate.qml
src/imports/controls/Switch.qml
src/imports/controls/SwitchDelegate.qml
src/imports/controls/doc/src/qtquickcontrols2-configuration.qdoc
src/imports/controls/material/CheckDelegate.qml
src/imports/controls/material/ItemDelegate.qml
src/imports/controls/material/MenuItem.qml
src/imports/controls/material/RadioDelegate.qml
src/imports/controls/material/SwipeDelegate.qml
src/imports/controls/material/SwitchDelegate.qml
src/imports/controls/qquickdefaultbusyindicator.cpp
src/imports/controls/qquickdefaultbusyindicator_p.h
src/imports/controls/qtquickcontrols2plugin.cpp
src/imports/controls/universal/CheckDelegate.qml
src/imports/controls/universal/ItemDelegate.qml
src/imports/controls/universal/MenuItem.qml
src/imports/controls/universal/RadioDelegate.qml
src/imports/controls/universal/SwipeDelegate.qml
src/imports/controls/universal/SwitchDelegate.qml
src/quickcontrols2/quickcontrols2.pri
src/quicktemplates2/qquickcontrol.cpp
src/quicktemplates2/qquickmenu.cpp
src/quicktemplates2/qquickpopup_p.h
Change-Id: Ib25c8b4a7fe018b7c0ade9b02bfaaa6980118c15
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If the QML engine refuses to defer execution of a delegate (it contains
an ID), we must make sure to cancel any pending deferred execution for
the same delegate. Otherwise, we may end up overriding a custom (non-
deferred) delegate with a default (deferred) delegate.
This patch adds a new test style "identified" to tst_customization.
This style contains delegates with IDs so we can test the behavior with
IDs in base styles. Furthermore, overriding delegates is now tested
in various ways (with and without IDs in the base and custom styles) in
a separate test method. This is done by generating QML code to override
delegates with dummy Item instances with appropriate IDs and names.
Task-number: QTBUG-65341
Change-Id: Ie6dca287cb74672004d9d8f599760b9d32c3a380
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QQuickPopup is backed by a QQuickControl subclass aka QQuickPopupItem.
However, since the QML engine sees "background" and "contentItem" as
properties of QQuickPopup, we must ensure that the deferred properties
are executed for the QQuickPopup wrapper object.
Task-number: QTBUG-50992
Change-Id: I2ec055b382e41530a6f4a740cb80853c0181c21a
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
.qmake.conf
examples/quickcontrols2/quickcontrols2.pro
src/imports/controls/ComboBox.qml
src/quicktemplates2/qquickabstractbutton.cpp
src/quicktemplates2/qquickabstractbutton_p.h
src/quicktemplates2/qquickapplicationwindow_p.h
src/quicktemplates2/qquickcombobox.cpp
src/quicktemplates2/qquickcontainer.cpp
src/quicktemplates2/qquickcontrol.cpp
src/quicktemplates2/qquickcontrol_p.h
src/quicktemplates2/qquickcontrol_p_p.h
src/quicktemplates2/qquicklabel_p.h
src/quicktemplates2/qquicklabel_p_p.h
src/quicktemplates2/qquickslider_p.h
src/quicktemplates2/qquickspinbox.cpp
src/quicktemplates2/qquicktextarea_p.h
src/quicktemplates2/qquicktextarea_p_p.h
src/quicktemplates2/qquicktextfield_p.h
src/quicktemplates2/qquicktextfield_p_p.h
tests/auto/auto.pro
tests/auto/controls/data/tst_combobox.qml
Change-Id: I34cdd5a9794e34e0f38f70353f2a2d04dfc11074
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Tumbler is excluded because test_customContentItemAtConstruction()
starts failing if deferred execution is enabled for the content item.
Task-number: QTBUG-50992
Change-Id: I11022c3c380311396453cf6229e068e4aae2d82a
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|\|
| |
| |
| | |
Change-Id: Idb1895dae2870dbed860ba3106fe52b01d733504
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When no content item is explicitly assigned, container type of controls
(Page, Pane, Popup...) create a default content item on demand. Notice
that the content item is created from within the contentItem() getter,
so it must not emit contentItemChanged() to avoid binding loops.
QQuickControl::setContentItem_helper() was introduced in 1eaebd0 to
mitigate basically the same problem with QQuickScrollView, which has
its own special lazy creation of a Flickable content item.
Now, the problem is that the other container controls are not executing
setContentItem_helper(), because they have already assigned contentItem
and therefore it returns right away. Fix the issue by returning the new
content item without assigning it to let setContentItem_helper() do its
job. The issue was spotted while debugging QTBUG-61434.
Change-Id: Id6f84748ec08bbdfd3bd934dda627e2619af7d2a
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This allows taking RTL into account e.g. when defining transitions and
transform origins.
[ChangeLog][Controls][Popup] Added a read-only "mirrored" property that
is true when the popup's locale is right-to-left.
Change-Id: I12fe09d8ed3af2836c92631ae43752929b08feb5
Reviewed-by: Mitch Curtis <mitch.curtis@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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
1) First of all, Popup's QObject-parent depends on the way the Popup
is declared in QML, or what is passed as a parent to createObject()
when creating dynamic instances. For example:
- Popup becomes a QObject child of of the contentItem:
ApplicationWindow {
Popup { }
}
- Popup becomes a QObject child of the window:
ApplicationWindow {
Item {
Popup { }
}
}
- Popup becomes a QObject child of the specified parent:
ApplicationWindow {
Component {
id: component
Popup { }
}
Component.onComplete: component.createObject(overlay)
}
Since QQuickWindow and QQuickView did not set the QObject-parent
of their contentItem and rootObject, respectively, we had troubles
finding popup instances, because window->findChildren<QQuickPopup>()
and window->contentItem()->findChildren<QQuickPopup>() would produce
inconsistent results. This has been fixed in qtdeclarative commit
af6655885, so now we can use window->findChildren() reliably.
2) Popups inherit font from the associated window, not the parent item.
It was wrong to call resolveFont() in setParentItem(), because the
parent item might not change even though the associated window does.
The piece of code was moved to setWindow() instead.
3) QQuickPopupItemPrivate::resolveFont() did not propagate the
default font at all when the font was resolved before being associated
to a window.
4) After the above fixes had been applied, to ensure that popups always
inherit fonts and propagate them down to children as appropriate, we
got a new test failure in tst_controls::Popup::test_font() indicating
that there were extra font change notifiers triggered at creation time.
This was fixed by associating "top-level" popups with the window as
soon as they are appended to ApplicationWindow's default property,
instead of waiting until the popup is complete and then doing a lookup
in the parent hierarchy.
Task-number: QTBUG-61114
Change-Id: I6185c76d50835cb7a06b03db0a3ac9ddad64bdd3
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The newly added multi-touch support can create issues, especially
together with Flickable that is unfortunately still not properly
touch-compatible. The implementation is still based on synthesized
mouse events, so things like Flickable::pressDelay that intercepts
mouse presses and re-sends sends them after a delay, does not play
well with touch-enabled controls.
The easiest way we can disable the whole thing is to make multi-
touch support a configurable feature, the same way hover support
is.
./configure -no-feature-quicktemplates2-multitouch
[...]
Qt Quick Templates 2:
Hover support .......................... yes
Multi-touch support .................... no
[ChangeLog][Templates] Added a configure feature for disabling multi-
touch support (configure -no-feature-quicktemplates2-multitouch).
Task-number: QTBUG-61144
Change-Id: I0003ae925c2a499ecb3e2a5b720088bd963d9ad3
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|/
|
|
|
| |
Change-Id: Icd965d8a79f022f4375e2134621cbc3897014015
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It has to default to true to ensure that a QQuickPopup instantiated in
C++ is not stuck to false forever. When instantiated by the QML engine,
it is set to false during the QML component initialization phase from
classBegin() to componentComple().
NOTE: QQuickPopupItem's visibility has to be now set outside of
QQuickPopupItem constructor, because QQuickPopupItem::itemChange()
calls back to QQuickPopup::itemChange(). At that point
QQuickPopupPrivate::popupItem should be set.
Change-Id: I96fa4ab4b2f29344c4a0d5bce5f8c7642e9db1a6
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
| |
This is required for now to keep things working when QQuickControl
touchEvent() is added.
Task-number: QTBUG-58389
Change-Id: I036cc39d96d4876056e01e619163dc1bbcffce74
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
| |
Change-Id: I03deebff661746d49e537af5b1c8899b938efb0d
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
| |
Change-Id: If7dd96ed25b1183586b903503b160fdeaef1ccea
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
When a popup is over an item that has a different cursor (such as a
TextField), the cursor incorrectly took on that shape, because
QQuickPopup didn’t have an explicitly set cursor.
Task-number: QTBUG-58810
Change-Id: I4df6dd725cac027b2c30fe69ad81d9cd7e622c15
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
| |
Change-Id: If567b99889b40528150834c3319cdfec8e5b229e
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
./configure -no-feature-quicktemplates2-hover
[...]
Qt Quick Templates 2:
Hover support .......................... no
Change-Id: I0509a1a9ac3ffe2cbfe4f2016ce0345708860b84
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
| |
Change-Id: I6f40794ae1977d1f23916bff6d0c58d44440fbe5
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
It was a bit inconsistent before. Admittedly the colon at the end
was the most commonly used style in the quicktemplates2 code base,
but some had a line-break before the colon. This is now chosen as
the one true coding style of QQC2. ;) It makes the initializer list
aligned so that it stands out from the constructor body.
Change-Id: I66835e088df90d7219af04915176006d2a934ddc
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
| |
Already done in 5.8 (00a0626) - these files are new in dev.
Change-Id: I534c7512a69d4c24ed9ce8191325556beb0fb1f7
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
[ChangeLog][Controls][Drawer] Added interactive property that specifies
whether the drawer reacts to swipes. This can be used to make drawer a
non-closable persistent side-bar.
Task-number: QTBUG-53169
Change-Id: I00a794b5ce47b86fcb28e0db784ca0488cd13a7d
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
| |
Conflicts:
src/quicktemplates2/qquickpopup.cpp
Change-Id: I227b071476e569d13eebd7d11ed041fe30daa389
|
|
|
|
|
|
|
|
|
|
|
| |
Conflicts:
src/imports/controls/BusyIndicator.qml
src/imports/controls/ProgressBar.qml
src/quicktemplates2/qquickpopup.cpp
src/quicktemplates2/qquickpopup_p_p.h
src/quicktemplates2/qquickstackview.cpp
Change-Id: I9a1028a991de9fc3e26d3f973106301e9ada631c
|
|
|
|
|
|
|
|
| |
Conflicts:
src/quicktemplates2/qquickpopup.cpp
src/quicktemplates2/qquickpopup_p_p.h
Change-Id: I33241dfd15a320e6ae2f0c056252b0ec6be7c6f6
|
|
We'll start slowly refactoring all QQuickPopupItem-specific things
out of QQuickPopup. In the future the presentation/backend of a popup
could be, under certain circumstances, a native menu popup window, for
example.
Change-Id: I8508da14ab52c65221afc3a9b7f07c371f0416d2
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|